and, or en elif
Je kunt if/else gebruiken om twee paden te kiezen. In deze les voeg je twee dingen toe: meerdere voorwaarden combineren met and/or, en meerdere takken met elif.
Twee voorwaarden tegelijk: and en or
Soms moet er aan meerdere voorwaarden tegelijk worden voldaan. Daarvoor gebruik je and en or:
| Operator | Wanneer True? |
|---|---|
and | Als beide voorwaarden True zijn |
or | Als minstens één voorwaarde True is |
leeftijd = 16
heeft_kaartje = True
if leeftijd >= 14 and heeft_kaartje:
print("Je mag naar binnen!")
else:
print("Sorry, je mag er niet in.")
Probeer zelf
Print True als zowel score minstens 7 is én aanwezig True is.
score = 8 aanwezig = True # Print of beide voorwaarden waar zijn print(...)
✅ Oplossing
score = 8
aanwezig = True
print(score >= 7 and aanwezig)
Meerdere takken: elif
if/else geeft je twee mogelijkheden. Maar wat als er drie of meer opties zijn? Daarvoor gebruik je elif (een afkorting van else if):
score = 65
if score >= 80:
print("Uitstekend!")
elif score >= 55:
print("Voldoende.")
else:
print("Helaas, onvoldoende.")
Python kijkt de voorwaarden van boven naar beneden na en stopt zodra er één True is. Je kunt zoveel elif-takken toevoegen als je wilt.
Predict
Wat print dit programma?
temperatuur = 22
if temperatuur >= 30:
print("Heet")
elif temperatuur >= 20:
print("Aangenaam")
elif temperatuur >= 10:
print("Fris")
else:
print("Koud")
Bekijk het antwoord
Aangenaam
22 >= 30 is False → naar de volgende. 22 >= 20 is True → print "Aangenaam" en stop. De rest wordt niet meer gecheckt.
Run
Voer de code uit. Probeer ook temperatuur = 5 en temperatuur = 35.
Investigate
Wat is het verschil tussen and en or? Probeer dit:
a = True
b = False
print(a and b)
print(a or b)
print(b and b)
print(b or b)
Bekijk het antwoord
False
True
False
False
and: alleenTrueals beide waar zijn.or:Trueals minstens één waar is.
Een handig trucje: vraag jezelf altijd "moet allebei, of mag één?" — dat bepaalt de keuze.
Er gaat iets mis
Een typische fout met elif:
score = 65
if score >= 80:
print("Uitstekend")
if score >= 55:
print("Voldoende")
else:
print("Onvoldoende")
Uitvoer bij score = 90:
Uitstekend
Voldoende
Waarom? De tweede regel is if (niet elif). Dat is een nieuw onafhankelijk if-statement. Bij score = 90 zijn beide voorwaarden waar, dus beide blokken worden uitgevoerd.
Oplossing: Gebruik elif om aan te geven dat het bij hetzelfde keuze-blok hoort:
if score >= 80:
print("Uitstekend")
elif score >= 55:
print("Voldoende")
else:
print("Onvoldoende")
Modify
Pas de code hieronder aan zodat de gast alleen welkom is als ze op de lijst staan EN minstens 14 zijn. Gebruik and.
naam = "Alex"
leeftijd = 15
op_lijst = True
if leeftijd >= 14:
print(f"Welkom, {naam}!")
else:
print(f"Sorry {naam}, je bent te jong.")💡 Tip
Combineer twee voorwaarden in de if: leeftijd >= 14 and op_lijst.
✅ Oplossing
naam = "Alex"
leeftijd = 15
op_lijst = True
if leeftijd >= 14 and op_lijst:
print(f"Welkom, {naam}!")
else:
print(f"Sorry {naam}, je mag niet naar binnen.")
Make: Scorebeoordeling
Schrijf een programma dat een score-cijfer (0 t/m 100) beoordeelt met if/elif/else:
- 80 of hoger →
Uitstekend - 55 of hoger →
Voldoende - anders →
Onvoldoende
Verwachte uitvoer (bij score = 70):
Voldoende
score = 70
if ...:
print("Uitstekend")
elif ...:
print("Voldoende")
else:
print("Onvoldoende")💡 Tip
if score >= 80: voor uitstekend, elif score >= 55: voor voldoende.
✅ Oplossing
score = 70
if score >= 80:
print("Uitstekend")
elif score >= 55:
print("Voldoende")
else:
print("Onvoldoende")
Make Bonus: Strenge toegangscontrole
Bouw een toegangscontrole die drie verschillende redenen kan geven waarom iemand niet binnen mag. Gebruik elif om elke reden apart te tonen.
Verwachte uitvoer (bij op_lijst = False, leeftijd = 12):
Sorry Alex, je staat niet op de lijst én je bent te jong.
Verwachte uitvoer (bij op_lijst = False, leeftijd = 18):
Sorry Alex, je staat niet op de gastenlijst.
Verwachte uitvoer (bij op_lijst = True, leeftijd = 12):
Sorry Alex, je bent te jong (minimum: 14).
Verwachte uitvoer (bij op_lijst = True, leeftijd = 18):
Welkom Alex!
naam = "Alex" leeftijd = 12 op_lijst = False if not op_lijst and leeftijd < 14: print(...) elif ...: print(...) elif ...: print(...) else: print(...)
💡 Tip
not op_lijst is True als ze niet op de lijst staan. Vier takken:
not op_lijst and leeftijd < 14→ beide problemennot op_lijst→ alleen lijst-probleemleeftijd < 14→ alleen leeftijd-probleemelse→ welkom
✅ Oplossing
naam = "Alex"
leeftijd = 12
op_lijst = False
if not op_lijst and leeftijd < 14:
print(f"Sorry {naam}, je staat niet op de lijst én je bent te jong.")
elif not op_lijst:
print(f"Sorry {naam}, je staat niet op de gastenlijst.")
elif leeftijd < 14:
print(f"Sorry {naam}, je bent te jong (minimum: 14).")
else:
print(f"Welkom {naam}!")
Je programma kan nu beslissingen nemen. Maar wat als je een heel rijtje getallen wilt aflopen, zonder elke regel zelf te typen? In de volgende les leer je de for-loop — daarmee laat je Python werk automatisch herhalen.