Ga naar hoofdinhoud

5c And, or en elif

Je kunt nu kiezen tussen twee paden met if/else. In deze les voeg je twee dingen toe: meerdere voorwaarden combineren met and en or, en meer dan twee takken met elif.

Twee voorwaarden combineren: 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.")

Vraag jezelf bij twijfel: "moet allebei, of mag één?" — dat bepaalt of je and of or kiest.

Meer dan twee takken: elif

if/else geeft je twee opties. Met elif (een afkorting van else if) voeg je extra takken toe:

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. De andere takken worden dan niet meer gecheckt. Je kunt zoveel elif-takken plaatsen als je wilt.


Opdracht 5c.1: Beide tegelijk

Print True als zowel score minstens 7 is én aanwezig True is.

# Schrijf hier je code
Klik hier voor een tip.

Combineer met and: score >= 7 and aanwezig. Dat resultaat is meteen een boolean.

Klik hier voor de oplossing.
score = 8
aanwezig = True

print(score >= 7 and aanwezig)
score = 8
aanwezig = True

print(score >= 7 and aanwezig)

Opdracht 5c.2: Scorebeoordeling

Beoordeel een score van 0 tot 100 met if/elif/else: 80 of hoger → Uitstekend, 55 of hoger → Voldoende, anders → Onvoldoende.

Verwachte uitvoer (bij score = 70):

Voldoende
# Schrijf hier je code
Klik hier voor een tip.

Eerst de strengste voorwaarde (>= 80), daarna elif score >= 55:, daarna else.

Klik hier voor de oplossing.
score = 70

if score >= 80:
print("Uitstekend")
elif score >= 55:
print("Voldoende")
else:
print("Onvoldoende")
score = 70

if score >= 80:
  print("Uitstekend")
elif score >= 55:
  print("Voldoende")
else:
  print("Onvoldoende")

Opdracht 5c.3: Strenge toegangscontrole

Bouw een toegangscontrole die per reden uitlegt waarom iemand niet binnen mag. Gebruik op_lijst en leeftijd (drempel: 14).

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!
# Schrijf hier je code
Klik hier voor een tip.

not op_lijst is True als de gast niet op de lijst staat. Vier takken op volgorde:

  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
Klik hier voor de 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}!")

In de volgende les leer je de for-loop: een rijtje getallen of namen aflopen zonder elke regel zelf te typen.

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}!")