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.

While loop

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.

Voorbeeld

num = 1
while num <= 5:
    print( num )
    num += 1
print( "Klaar" )

Meer informatie vind je in hoofdstuk 7.1 while loop in het boek.