Computers raken niet verveeld. Als een computer een taak honderdduizenden malen moet herhalen, protesteert hij niet. Mensen daarentegen houden niet van teveel herhaling. Daarom moeten herhalende taken aan een computer worden overgelaten. Alle programmeertalen ondersteunen herhalingen. De klasse programmeerconstructies die herhalingen mogelijk maken heten “iteraties.” Een veelgebruikte term is “loops” (Engels, spreek uit: “loeps” – dit woord kun je netjes vertalen als “lussen,” maar dat zeggen programmeurs nooit).
Dit hoofdstuk legt uit wat je moet weten over loops in Python. Als programmeren helemaal nieuw voor je is, zul je wellicht het gevoel krijgen dat loops een lastig onderwerp zijn. Als dat zo is, neem dan de tijd voor dit hoofdstuk, en werk eraan totdat je zeker weet dat je alles snapt. Loops zijn zo’n basaal programmeerconcept dat je ze goed moet begrijpen. Elk hoofdstuk dat hierna komt maakt gebruik van loops.
Stel dat je als input 5 getallen moet vragen en deze optellen dan doen we dat momentaal zo:
num1 = int(input( "Nummer 1: " ))
num2 = int(input( "Nummer 2: " ))
num3 = int(input( "Nummer 3: " ))
num4 = int(input( "Nummer 4: " ))
num5 = int(input( "Nummer 5: " ))
print(num1 + num2 + num3 + num4 + num5)
Maar wat als dat er 500 worden? Met een while
loop zouden we het voorbeeld als volgende kunnen oplossen:
num = 1
som = 0
while num <=5:
num += 1
som += int(input("geef nummer: "))
print(som)
Probeer zelf het voorbeeld aan te passen dat het werkt voor 500 getallen.
Veralgemeend is de syntax:
while <boolean expressie>:
<acties>
Net als bij een if
statement, test een while
statement een boolean expressie, en als de expressie True
oplevert, wordt het blok code onder de while uitgevoerd. Echter, in tegenstelling tot een if
statement, gaat Python, wanneer het blok code uitgevoerd is, terug naar de boolean expressie naast de while
, en test die opnieuw. Als de expressie nog steeds True
oplevert, dan wordt het blok code nogmaals uitgevoerd. En als het is uitgevoerd, keert Python wederom terug naar de boolean expressie. Dit wordt steeds herhaald, totdat de boolean expressie False
oplevert. Pas op dat moment slaat Python het blok code onder de while
over en gaat eronder verder.
Merk op dat als de boolean expressie meteen False
oplevert de eerste keer dat Python hem ziet, dan wordt het blok code onder de while
onmiddellijk overgeslagen, net zoals gebeurt bij een if
statement.
Wees voorzichtig dat je niet eeuwig in een while
loop vastzit aangezien dit een RunTimeError
zal geven.
num = 1
while num <= 5:
print( num )
num += 1
print( "Klaar" )
Meer informatie vind je in hoofdstuk 7.1 while
loop in het boek.