if en else
Je kunt vergelijkingen maken die True of False opleveren. In deze les laat je je programma iets doen op basis van zo'n vergelijking, met if en else.
if en else
Met if voer je code uit alleen als een voorwaarde True is. Met else geef je aan wat er moet gebeuren als de voorwaarde False is:
leeftijd = 15
if leeftijd >= 18:
print("Je bent volwassen!")
else:
print("Je bent nog minderjarig.")
De code ná if en ná else moet 4 spaties inspringen. Dit is verplicht in Python — het vertelt Python welke regels bij het blok horen.
Probeer zelf
Schrijf een if/else die print "Gefeliciteerd, je bent geslaagd!" als cijfer minstens 5.5 is, en anders "Helaas, gezakt.".
cijfer = 6.0 if ...: print(...) else: print(...)
✅ Oplossing
cijfer = 6.0
if cijfer >= 5.5:
print("Gefeliciteerd, je bent geslaagd!")
else:
print("Helaas, gezakt.")
Predict
Wat print dit programma? Schrijf je antwoord op.
temperatuur = 12
if temperatuur >= 20:
print("Lekker weer, zonnebril mee!")
else:
print("Pak een jas, het is fris.")
print("Geniet van de dag!")
Bekijk het antwoord
Pak een jas, het is fris.
Geniet van de dag!
12 >= 20 is False, dus de else-tak wordt uitgevoerd. De laatste print staat buiten het if/else-blok (geen inspringen), dus die wordt altijd uitgevoerd.
Run
Voer de code uit. Klopt het?
Verander temperatuur = 12 in temperatuur = 25. Wat verandert er?
Bekijk het antwoord
Nu is 25 >= 20 True, dus de if-tak wordt uitgevoerd:
Lekker weer, zonnebril mee!
Geniet van de dag!
Investigate
Wat gebeurt er als je de inspringen weglaat? Probeer dit:
leeftijd = 15
if leeftijd >= 18:
print("Je bent volwassen!")
Bekijk het antwoord
Foutmelding:
IndentationError: expected an indented block after 'if' statement
Python verwacht dat er minstens één ingesprongen regel ná if staat. Zonder inspringen weet Python niet welke code bij het if-blok hoort.
if zonder else
Je hebt niet altijd een else nodig. Als je alleen iets wil doen bij een bepaalde voorwaarde:
score = 80
if score >= 50:
print("Gefeliciteerd, je bent geslaagd!")
print("Je score was:", score)
De tweede print wordt altijd uitgevoerd — hij staat buiten het if-blok.
Er gaat iets mis
Een veel-gemaakte fout:
leeftijd = 18
if leeftijd = 18:
print("Je bent precies 18!")
Foutmelding:
SyntaxError: invalid syntax
Waarom? In een if-voorwaarde gebruik je == (vergelijking), niet = (toewijzing).
Oplossing: Gebruik ==:
if leeftijd == 18:
print("Je bent precies 18!")
Modify
Voeg een else toe die toont hoeveel jaar iemand nog moet wachten.
leeftijd = 15
if leeftijd >= 18:
print("Je mag naar binnen!")💡 Tip
Je kunt berekeningen doen in een f-string: f"Nog {18 - leeftijd} jaar te gaan.".
✅ Oplossing
leeftijd = 15
if leeftijd >= 18:
print("Je mag naar binnen!")
else:
print(f"Nog {18 - leeftijd} jaar te gaan.")
Make: Toegangscontrole
Een feestje heeft een minimumleeftijd van 14. Schrijf een programma dat met een variabele leeftijd de gast óf welkom heet, óf afwijst.
Verwachte uitvoer (bij leeftijd = 15):
Welkom op het feestje!
Verwachte uitvoer (bij leeftijd = 12):
Sorry, je bent te jong.
leeftijd = 15 if ...: print(...) else: print(...)
💡 Tip
if leeftijd >= 14: — de drempel is 14, niet 18.
✅ Oplossing
leeftijd = 15
if leeftijd >= 14:
print("Welkom op het feestje!")
else:
print("Sorry, je bent te jong.")
Make Bonus: Geslaagd?
Schrijf een programma dat met een variabele cijfer een gepersonaliseerd bericht print. Gebruik een variabele naam en een f-string in beide takken.
Verwachte uitvoer (bij naam = "Alex", cijfer = 6.5):
Gefeliciteerd Alex, je hebt een 6.5 — geslaagd!
Verwachte uitvoer (bij cijfer = 4.0):
Helaas Alex, een 4.0 is niet genoeg.
naam = "Alex" cijfer = 6.5 if ...: print(...) else: print(...)
💡 Tip
Drempel: cijfer >= 5.5. In beide takken gebruik je een f-string met {naam} en {cijfer}.
✅ Oplossing
naam = "Alex"
cijfer = 6.5
if cijfer >= 5.5:
print(f"Gefeliciteerd {naam}, je hebt een {cijfer} — geslaagd!")
else:
print(f"Helaas {naam}, een {cijfer} is niet genoeg.")
Je programma kan nu kiezen tussen twee opties. Maar wat als er drie of meer mogelijkheden zijn? Of als er meerdere voorwaarden tegelijk waar moeten zijn? Dat leer je in de volgende les.