Je hebt gezien dat je met een if…else-statement een keuze kunnen maken tussen welke van twee gedeeltes code uitgevoerd zal worden, door middel van een bepaalde voorwaarde. (“Bijvoorbeeld: als iemand een resultaat van 50% of hoger heeft behaald dan wil je die feliciteren, terwijl als iemand lager dan 50% heeft behaald dan wil je troost aanbieden.”)
Soms zijn er echter meer dan twee opties waar je uit wil kiezen. Stel dat je bijvoorbeeld iemand met exact 50% juist een speciaal bericht wil aanbieden: “Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!”
Dat doet je met een if...elif...else-statement.
De elif staat hier voor else if, ofwel anders als. Dat wil zeggen: als er niet aan de eerste voorwaarde voldaan wordt, zal er gekeken worden naar een tweede voorwaarde. Verder werkt de if...elif...else-statement hetzelfde als een if...else-statement.
if-statement wordt uitgevoerdprocent_op_toets_behaald = 80
if procent_op_toets_behaald >= 50:
bericht = "Gefeliciteerd, je bent geslaagd voor je toets!"
elif procent_op_toets_behaald == 50:
bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!"
else:
bericht = "Sorry, volgende keer beter."
Wat gebeurt er hier?
procent_op_toets_behaald.if-statement controleert de voorwaarde achter het woord if. In dit geval kijken we of procent_op_toets_behaald groter dan 50 is met de vergelijking >.True) is, wordt de ingesprongen regel die daaronder staat (bericht = "Gefeliciteerd, je bent geslaagd voor je toets!") wel uitgevoerd.elif: en else: staan (bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!" en bericht = "Sorry, volgende keer beter.") worden genegeerd, want de voorwaarde was True.if...elif...else is de waarde van bericht dus "Gefeliciteerd, je bent geslaagd voor je toets!".elif-statement wordt uitgevoerdprocent_op_toets_behaald = 50
if procent_op_toets_behaald > 50:
bericht = "Gefeliciteerd, je bent geslaagd voor je toets!"
elif procent_op_toets_behaald == 50:
bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!"
else:
bericht = "Sorry, volgende keer beter."
Wat gebeurt er hier?
procent_op_toets_behaald.if-statement controleert de voorwaarde achter het woord if. In dit geval kijken we of procent_op_toets_behaald groter dan 50 is met de vergelijking >.False) is, wordt de ingesprongen regel die daaronder staat (bericht = "Gefeliciteerd, je bent geslaagd voor je toets!") niet uitgevoerd.elif-statement controleert de voorwaarde achter het woord elif. In dit geval kijken we of procent_op_toets_behaald gelijk aan 50 is met de vergelijking ==.True) is, wordt de ingesprongen regel die daaronder staat (bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!") wel uitgevoerd.else: staat (bericht = "Sorry, volgende keer beter.") wordt genegeerd, want de voorwaarde was True.if...elif...else is de waarde van bericht dus "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!".else-statement wordt uitgevoerdprocent_op_toets_behaald = 30
if procent_op_toets_behaald > 50:
bericht = "Gefeliciteerd, je bent geslaagd voor je toets!"
elif procent_op_toets_behaald == 50:
bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!"
else:
bericht = "Sorry, volgende keer beter."
Wat gebeurt er hier?
procent_op_toets_behaald.if-statement controleert de voorwaarde achter het woord if. In dit geval kijken we of procent_op_toets_behaald groter dan of gelijk aan 50 is met de vergelijking >=.False) is, wordt de ingesprongen regel die daaronder staat (bericht = "Gefeliciteerd, je bent geslaagd voor je toets!") niet uitgevoerd.elif-statement controleert de voorwaarde achter het woord elif. In dit geval kijken we of procent_op_toets_behaald gelijk aan 50 is met de vergelijking ==.False) is, wordt de ingesprongen regel die daaronder staat (bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!") niet uitgevoerd.else: staat (bericht = "Sorry, volgende keer beter.") zal dus worden uitgevoerd.if...else is de waarde van bericht dus "Sorry, volgende keer beter.".Bekijk goed de code hieronder en vervang de underscores (____) zodat de korting aan het einde van het programma 10% is:
groep_grootte = 7
if groep_grootte > 10:
korting_procent = 20
elif groep_grootte ____ 5:
korting_procent = 10
else:
korting_procent = 0
De rest van de code mag je niet veranderen.