Python – For loop + strings Afsluitende opgaven: 15min Kirsten Kingma
Leerdoelen Na deze les: Weet ik wanneer een for loop handig is Kan ik een for loop gebruiken Kan ik een for loop schrijven Uitleggen waar je strings voor gebruikt Strings gebruiken over meerdere regels Indices voor strings gebruiken Strings doorlopen Uitleggen dat strings niet te veranderen zijn String methodes gebruiken: upper(), lower(), find(), replace()
Herhaling: afsluitende opgaven Afsluitende opgave 8.1 Functie voor tafel van vermenigvuldiging. Maak een functie die als parameter een getal krijgt, en die dan de tafel van vermenigvuldiging voor 0 tot en met 10 van dat getal afdrukt. Gebruik hiervoor een loop. Bijvoorbeeld, als de parameter 12 is, dan drukt het programma als eerste regel: 0 * 12 = 0 1 * 12 = 12 af, en als laatste regel: 10 * 12 = 120
Herhaling: afsluitende opgaven Afsluitende opgave 8.3 Vind de fout Voer de onderstaande code uit. Wat is er fout aan de volgende code? Waar komt "None" vandaan? Los het probleem in de functie op! #FUNCTIE DEFINITIEdef oppervlakte_van_driehoek( basis, hoogte ): opp = 0.5 * basis * hoogte print( "Een driehoek met", basis, "en hoogte", hoogte, "heeft oppervlakte", opp ) #HOOFDPROGRAMMA MET AANROEP VAN FUNCTIE berekende_oppervlakte = oppervlakte_van_driehoek( 4.5, 1.0 ) print( berekende_oppervlakte )
Herhaling: afsluitende opgaven Afsluitende opgave 8.4 Munt opgooien Schrijf een programma dat een munt opgooit. Maak hiervoor een functie `gooiMunt` dat willekeurig een tekst "KOP" of "MUNT" teruggeeeft. Maak gebruik van een random getal. Als deze 0 is, dan wordt het "KOP", anders "MUNT". In je hoofdprogramma roep je de functie `gooiMunt` aan en druk je het resultaat af.
While loop: herhalingen Zolang de conditie waar is, voer de acties uit. Structuur: Voorbeelden: while ( conditie ): acties while ikHebHonger: eet() while not spelIsAfgelopen: speelNogEenRonde()
Hoe vaak herhalen? While loop: Je weet niet hoe vaak je moet herhalen Zolang … herhaal …. Hoe vaak je herhaalt afhankelijk van een variabele Zorg dat de while-loop altijd eindigt! For loop: Je weet wel hoe vaak je moet herhalen Herhaal x keer Aantal herhalingen vooraf bekend
Voorbeeld: robot besturen Stel we willen de robot een rondje laten lopen import turtle turtle.forward(5) turtle.right(90) 4 keer hetzelfde!
Voorbeeld: robot besturen Stel we willen de robot een rondje laten lopen Stel we willen 5 keer “Hallo” printen, hoe doen we dat? Hier kun je aangeven hoe vaak je het herhaalt import turtle for teller in range(4): turtle.forward(5) turtle.right(90) inspringen Wat je herhaalt for teller in range(5): print( “Hallo” )
Gebruik van for-loops Met deze code printen we 5 keer “Hallo” Wat print onderstaande code? Wat print deze code? for teller in range(5): print( “Hallo” ) 1 2 3 for teller in range(4): print( teller ) 00 01 02 03 10 11 12 13 20 21 22 23 30 31 32 33 for x in range(4): for y in range(4): print( x,y )
For met range parameters Range (begin, einde, stapgrootte) Begin: Het eerste getal Einde: Dit getal wordt nooit bereikt Stapgrootte: welk getal je telkens bij het eerste getal optelt Hoe printen we deze reeks: for teller in range(4): print( teller ) for teller in range(2,6): print( teller ) for teller in range(3,11,2): print( teller ) 1 2 3 2 3 4 5 3 5 7 9 10 15 20 for teller in range(10,25,5): print( teller )
Strings Strings zijn teksten string1 = "appel” # aangeven met dubbele aanhalingstekens string2 = ‘banaan’ # of met enkele aanhalingstekens groet = “Hallo iedereen” # string kan meerdere woorden bevatten string4 = “ ” # een spatie is ook een string string5 = “” # een string mag leeg zijn (0 letters) #Een string kun je afdrukken. print( string1 ) # Dit print: appel #Een string kun je aan elkaar plakken. print( string1 + string2 ) # Dit print: appelbanaan #kun je herhalen. print( 3 * string1 ) # Dit print: appelappelappel
String doorlopen met een for loop fruit = "banaan" for letter in fruit: if letter == "a": print( "a gevonden!" ) Wat wordt hier geprint? UITVOER: a gevonden!
Newline print( “eerste regel \n tweede regel" ) UITVOER: eerste regel Voor het afdrukken op een volgende regel: \n UITVOER: eerste regel tweede regel print( “eerste regel \n tweede regel" )
Lengte woord = “fiets” lengte = len(woord) print( lengte ) Voor het bepalen van de lengte van een woord: len( ... ) UITVOER: 5 woord = “fiets” lengte = len(woord) print( lengte )
Index Elk letter in een string heeft een index (of positie) Tellen begint bij 0 woord = "fiets" print( woord[0] ) #drukt eerste letter af (index 0): f print( woord[1] ) #drukt tweede letter af (index 1): i print( woord[4] ) #drukt 5e letter af (index 4): s print( woord[ len(woord) - 1 ] ) Hoe druk je de laatste letter af? Hoe druk je de laatste letter een word af waarvan je de lengte niet weet? Tip: met len(woord) bepaal je de lengte van een woord
String methodes met . (punt) tekst = “FieTs" print( tekst ) # drukt af: FieTs print( tekst.upper() ) #drukt af: FIETS print( tekst.lower() ) #drukt af: fiets #drukt positie van T af: print( tekst.find( “T” ) ) #drukt af: 3 #vervangt T met t. print(tekst.replace( “T” , “t” )) #drukt af: Fiets #knipt uit tekst: eerste index tot laatste print( tekst[1:3] ) #drukt af: ie
Strings zijn onveranderbaar Werkt niet, tekst blijft de waarde klein houden: De waarde van een string veranderd niet zomaar! Tekst bliijft namelijk de waarde klein houden. Hoe verander je alle letters dan wel in hoofdletters? Kopie maken met daarin de aanpassing tekst = “klein" print( tekst.upper()) #drukt af:KLEIN print( tekst ) #drukt af:klein #maak kopie met daarin hoofdletters nieuwetekst = tekst.upper() print( nieuwetekst) #drukt KLEIN af print( tekst) #drukt klein af
ASCII codering Letters worden op een computer in ASCII gecodeerd Bijvoorbeeld: ‘A’ is 65 Met ord() vraag je de ASCII code op: ord(‘A’) Met chr() vraag je de letter op: chr(65)
Afsluitende opgave 10.5 Caesar Encryptie De Romeinen gebruikten de Caesarmethode om boodschappen te versleutelen. In dit geheimschrift wordt iedere letter vervangen door de letter die een paar plaatsen verder staat in het alfabet. Hier een verschuiving van 3 plaatsen. A → D, … , X → A, Y → B , Z → C.
Leerdoelen Na deze les: Weet ik wanneer een for loop handig is Kan ik een for loop gebruiken Kan ik een for loop schrijven Uitleggen waar je strings voor gebruikt Strings gebruiken over meerdere regels Indices voor strings gebruiken Strings doorlopen Uitleggen dat strings niet te veranderen zijn String methodes gebruiken: upper(), lower(), find(), replace()
Opdrachten http://course.cs.ru.nl/pythonVO/