← Terug naar overzicht
Basisconcepten · Python

Control flow

if, while en for

3.1 Conditional logic met if

temperatuur = 17

if temperatuur >= 25:
    print("Draag een t-shirt")
elif temperatuur >= 15:
    print("Een jas is genoeg")
else:
    print("Trek een winterjas aan")

Let op de indentation: dit is in Python niet optioneel, maar bepaalt welke code bij welk blok hoort.

if temperatuur >= 15 and temperatuur < 25:
    print("Perfect jasje-weer")

3.2 Herhalen met while zolang een voorwaarde geldt

teller = 0
while teller < 5:
    print("Teller staat op", teller)
    teller += 1
print("Klaar!")

Let op infinite loops: vergeet nooit de teller/voorwaarde bij te werken binnen de loop.

# Voorbeeld: gebruiker input vragen tot juist antwoord
antwoord = ""
while antwoord != "python":
    antwoord = input("Wat is mijn favoriete taal? ")
print("Correct!")

break en continue:

teller = 0
while True:
    teller += 1
    if teller == 3:
        continue   # sla deze iteratie over
    if teller > 5:
        break      # stop de loop
    print(teller)

return vs. break: break stopt alleen de loop, return kan alleen binnen een function en stopt meteen de hele function. Staat de loop toch al in een function, dan is return vaak netter dan break, want je hoeft geen extra vlag te onthouden.

def zoek_eerste_match(items, doel):
    for item in items:
        if item == doel:
            return item   # stopt de function meteen
    return None

3.3 Itereren met for over een reeks

for i in range(5):
    print(i)   # 0, 1, 2, 3, 4

range(start, stop, step):

for i in range(2, 10, 2):
    print(i)   # 2, 4, 6, 8

Itereren over collections:

namen = ["Chris", "Tom", "Rachel"]
for naam in namen:
    print("Hallo,", naam)

# Met index via enumerate
for index, naam in enumerate(namen):
    print(index, naam)

# Itereren over een dict
huisdieren = {"Chris": 2, "Tom": 1}
for naam, aantal in huisdieren.items():
    print(naam, "heeft", aantal, "huisdieren")

List comprehension (compacte manier om een for-loop te schrijven):

kwadraten = [x**2 for x in range(10)]
print(kwadraten)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]