Ga naar hoofdinhoud

5b If en else

Een vergelijking geeft True of False. Met if en else laat je je programma daar iets mee doen.

if en else​

Met if voer je code uit als een voorwaarde True is. Met else zeg je wat er anders moet gebeuren:

leeftijd = 15

if leeftijd >= 18:
print("Je bent volwassen!")
else:
print("Je bent nog minderjarig.")

De regels ná if en else springen 4 spaties in. Die inspringing is geen opmaak: Python ziet eraan welke regels bij het blok horen. Laat je hem weg, dan krijg je een IndentationError.

if zonder else​

Je hebt niet altijd een else nodig:

score = 80

if score >= 50:
print("Gefeliciteerd, je bent geslaagd!")

print("Je score was:", score)

De tweede print springt niet in. Hij staat buiten het if-blok, dus Python voert hem altijd uit.

score = 40

if score >= 50:
print("Geslaagd")
print("Klaar")
Voorspel
Wat zet dit programma op het scherm?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

De dubbele punt vergeten

leeftijd = 15
if leeftijd >= 18
print("Volwassen")

Uitvoer:

SyntaxError: expected ':'

Achter de voorwaarde van een if, en achter else, staat altijd een dubbele punt.

Niet ingesprongen

leeftijd = 15
if leeftijd >= 18:
print("Volwassen")

Uitvoer:

IndentationError: expected an indented block after 'if' statement on line 2

Na de dubbele punt verwacht Python een regel die 4 spaties inspringt.

= in plaats van ==

leeftijd = 18
if leeftijd = 18:
print("Gefeliciteerd")

Uitvoer:

SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

Met één = geef je een variabele een waarde. Vergelijken doe je met ==. Python raadt het in de melding zelf al.


Opdracht 5b.1: Geslaagd?​

Schrijf een if/else die "Gefeliciteerd, je bent geslaagd!" print als cijfer minstens 5.5 is, en anders "Helaas, gezakt.".

# Schrijf hier je code
Klik hier voor een tip.

if cijfer >= 5.5: voor de eerste tak, else: voor de tweede. Vergeet de dubbele punt en de inspringing niet.

Klik hier voor de oplossing.
cijfer = 6.0

if cijfer >= 5.5:
print("Gefeliciteerd, je bent geslaagd!")
else:
print("Helaas, gezakt.")
cijfer = 6.0

if cijfer >= 5.5:
    print("Gefeliciteerd, je bent geslaagd!")
else:
    print("Helaas, gezakt.")

Opdracht 5b.2: Toegangscontrole​

Een feestje heeft een minimumleeftijd van 14. Print of de gast welkom is.

Verwachte uitvoer (bij leeftijd = 15):

Welkom op het feestje!

Verwachte uitvoer (bij leeftijd = 12):

Sorry, je bent te jong.
# Schrijf hier je code
Klik hier voor een tip.

if leeftijd >= 14: — de drempel is 14, niet 18.

Klik hier voor de oplossing.
leeftijd = 15

if leeftijd >= 14:
print("Welkom op het feestje!")
else:
print("Sorry, je bent te jong.")
leeftijd = 15

if leeftijd >= 14:
    print("Welkom op het feestje!")
else:
    print("Sorry, je bent te jong.")

Opdracht 5b.3: Gepersonaliseerd resultaat​

Schrijf een programma dat met naam en cijfer een persoonlijk bericht print. Gebruik 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.
# Schrijf hier je code
Klik hier voor een tip.

Drempel: cijfer >= 5.5. In beide takken een f-string met {naam} en {cijfer}.

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

In de volgende les leer je hoe je drie of meer mogelijkheden afhandelt en hoe je twee voorwaarden combineert.

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.")
Waar kom je dit later weer tegen?

Geen algoritme zonder beslissing: lineair zoeken is niet meer dan een loop met precies één if erin. Op de conceptenkaart van de algoritmes-cursus zie je welke algoritmes op deze les draaien.