In Python ziet de for-lus er als volgt uit:

for VARIABELE in COLLECTIE:
  A

Je kan dit lezen als: Voor elke waarde van VARIABELE die in COLLECTIE zit, voer code A uit. Hoe zo’n collectie eruit ziet, bespreken we in de volgende secties.

flowchart-forloop

👀 Voorbeeld - 5x Hallo

for i in range(5):
    print('Hallo')

💡 Hint

Let opnieuw op de dubbelepunt achter de for. Merk ook op dat code A opnieuw geïndenteerd is.

👀 Voorbeeld - Tellen binnen bereik

Het volgende stukje code print de getallen van 0 tot en met 4.

for n in range(5):
    print(n)

De collectie range(5) bevat alle getallen van 0 tot 5, met 5 dus niet inbegrepen. Er gebeuren hier 5 iteraties van het stukje code onder de for-lus.

  1. n=0, print n.
  2. n=1, print n.
  3. n=2, print n.
  4. n=3, print n.
  5. n=4, print n.

🧠 Denkoefening - Meer iteraties

Wat moet je aan het vorige voorbeeld veranderen indien je 8 iteraties wil in plaats van 5.

Range

In het voorbeeld hierboven gebruiken we de range-functie. Die functie krijgt 1 tot 3 argumenten: range(start, stop, stap).

Twee soorten lussen

Er bestaan dus twee soorten lussen: for-lussen en while-lussen. Je kan steeds de ene lus in de andere transformeren mits een aantal aanpassingen in je programma.

👀 Voorbeeld - For of while?

Het vorige voorbeeldprogramma, dat de getallen van 0 tot en met 4 print, kan je makkelijk aanpassen naar een programma met een while-lus.

n = 0
while n < 5:
    print(n)
    n += 1

Zoals je ziet is de code met de for-lus een stuk compacter. De telvariabele verhogen, wat nodig was in de while-lus, is in een for-lus niet meer nodig.

🤔 Huh? For en while

Wanneer gebruik ik welke soort lus?

Hiervoor bestaan er een aantal vuistregels. Je kan een for-lus steeds schrijven als een while-lus en andersom. Toch is het meestal gemakkelijker om voor een for-lus te kiezen.

Bijvoorbeeld, wanneer

  • je een stuk code n keer wil herhalen.
  • je over een bepaalde collectie wil itereren.

Daarnaast vermijd je met een for-lus oneindige lussen. Een while-lus kies je best wanneer je wil herhalen zo lang als een bepaalde voorwaarde geldt. Die voorwaarde kan bijvoorbeeld afhangen van de input van de gebruiker.

💻 Programmeeroefening - 5–20 met for-lus

We willen een programma schrijven dat de getallen print tussen 5 en 20. Hier is geschreven met een while-lus.

i = 5
while i < 21:
   print(i)
   i += 1

Schrijf in de editor hieronder een programma dat hetzelfde doet, maar met een for-lus.