Cursus
if…elif…else zijn voorwaardelijke instructies in Python waarmee je automatisch verschillende code kunt uitvoeren op basis van een bepaalde voorwaarde. Deze tutorial legt elke instructie in deze Python-constructie uit, met voorbeelden.
Om alle voorbeeldcode in deze tutorial zelf eenvoudig uit te voeren, kun je gratis een DataLab-werkboek aanmaken waarin Python vooraf is geïnstalleerd en alle codevoorbeelden staan. Voor meer oefening met if-instructies kun je deze praktische DataCamp-oefening proberen.…elif…else
if-voorwaarde
De if-voorwaarde is de eenvoudigste van de drie en neemt een beslissing op basis van de vraag of de voorwaarde waar is of niet. Als de voorwaarde waar is, wordt de ingesprongen expressie uitgevoerd. Als de voorwaarde onwaar is, wordt de ingesprongen expressie overgeslagen.
if condition:
expression
Voorbeeld van if
Stel, je hebt een variabele z die gelijk is aan 4. Als de waarde ‘even’ is, print je z is ‘even’. Je gebruikt de modulo-operator 2, die 0 teruggeeft als z ‘even’ is. Zodra je de onderstaande code uitvoert, controleert Python of de voorwaarde geldt. Als dat True is, wordt de bijbehorende code uitgevoerd.
z = 4
if z % 2 == 0: # True
print("z is even")
# z is even
Voorbeeld van meerdere regels binnen een if-instructie
Het is prima om meer regels binnen de if-instructie te hebben, zoals in het onderstaande voorbeeld. Het script geeft twee regels terug wanneer je het uitvoert. Als de voorwaarde niet wordt gehaald, wordt de expressie niet uitgevoerd.
z = 4
if z % 2 == 0:
print("checking " + str(z))
print("z is even")
# checking 4
# z is even
Voorbeeld van een onware if-instructie
Laten we de waarde van z veranderen naar oneven. Je merkt dat de code niets print, omdat de voorwaarde niet gehaald wordt, oftewel False.
z = 5
if z % 2 == 0: # False
print("checking " + str(z))
print("z is even")
# no output expected
if-else-voorwaarde
De if-else-voorwaarde voegt een extra stap toe aan het beslissingsproces vergeleken met de eenvoudige if-instructie. Het begin van een if-else-instructie werkt vergelijkbaar met een eenvoudige if-instructie; maar als de voorwaarde onwaar is, wordt in plaats van niets te printen de ingesprongen expressie onder else geprint.
if condition:
expression
else:
expression
Voorbeeld van if-else
Als we doorgaan met ons vorige voorbeeld: wat als je ‘z is odd’ wilt printen wanneer de if-voorwaarde onwaar is? In dat geval kun je eenvoudig een andere tak toevoegen, namelijk de else-tak. Als je het uitvoert met z gelijk aan 5, is de voorwaarde niet waar, dus wordt de expressie voor de else-instructie geprint.
z = 5
if z % 2 == 0:
print("z is even")
else:
print("z is odd")
# z is odd
if-elif-else-voorwaarde
De meest uitgebreide van deze voorwaarden is de if-elif-else-voorwaarde. Wanneer je een situatie hebt met meerdere voorwaarden, kun je zoveel elif-voorwaarden plaatsen als nodig tussen de if- en de else-voorwaarde.
if condition:
expression
elif condition:
expression
else:
expression
Voorbeeld één van if-elif-else-voorwaarde
Hieronder staat een voorbeeld waarin je verschillende outputs wilt voor getallen die deelbaar zijn door 2 en 3.
Omdat z hier gelijk is aan 3, is de eerste voorwaarde False, dus gaat het door naar de volgende voorwaarde. De volgende voorwaarde is wel True. Daarom wordt de bijbehorende print-instructie uitgevoerd.
z = 3
if z % 2 == 0:
print("z is divisible by 2")
elif z % 3 == 0:
print("z is divisible by 3")
else:
print("z is neither divisible by 2 nor by 3")
# z is divisible by 3
Voorbeeld twee van if-elif-else-voorwaarde
In het onderstaande voorbeeld definieer je twee variabelen room en area. Vervolgens maak je if-elif-else- en if-else-constructies voor respectievelijk room en area.
In de eerste constructie controleer je if je in de keuken kijkt, elif je in de slaapkamer kijkt, else je ergens anders rondkijkt. Afhankelijk van de waarde van de variabele room wordt de passende tak uitgevoerd.
Voor de variabele area schrijf je op vergelijkbare wijze een if- en else-voorwaarde en controleer je of de area groter is dan 15 of niet.
# Define variables
room = "bed"
area = 14.0
# if-elif-else construct for room
if room == "kit":
print("Looking around in the kitchen.")
elif room == "bed":
print("Looking around in the bedroom.")
else:
print("Looking around elsewhere.")
# if-elif-else construct for area
if area > 15:
print("Big place!")
else:
print("Pretty small.")
# Looking around in the bedroom.
# Pretty small.
Wil je meer leren over elif-instructies in Python? Bekijk dan deze video uit onze cursus Intermediate Python.
Deze content is afkomstig uit onze cursus Intermediate Python van Hugo Bowne-Anderson.
Conclusie
Voorwaardelijke instructies zijn een van de eerste echte bouwstenen van programmeerlogica in Python.
Wat we hebben behandeld:
-
ifvoert een codeblok alleen uit wanneer een voorwaarde waar is. -
if-elsevoegt een terugvaloptie toe die wordt uitgevoerd wanneer de voorwaarde onwaar is. -
if-elif-elselaat je meerdere voorwaarden op rij controleren en voert het blok uit dat hoort bij de eerste die waar is.
