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")
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.")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.