Ga naar hoofdinhoud

and, or en elif

Wat je al kent

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:

OperatorWanneer True?
andAls beide voorwaarden True zijn
orAls 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: alleen True als beide waar zijn.
  • or: True als 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:

  1. not op_lijst and leeftijd < 14 → beide problemen
  2. not op_lijst → alleen lijst-probleem
  3. leeftijd < 14 → alleen leeftijd-probleem
  4. else → 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}!")
Volgende les

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.