Uitleg die je bij de vorige opdracht hebt gelezen

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.



Voorbeeld 1: de if-statement wordt uitgevoerd
procent_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?

  1. De waarde 80 wordt opgeslagen in de variabele procent_op_toets_behaald.
  2. De 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 >.
  3. Omdat die vergelijking wel waar (True) is, wordt de ingesprongen regel die daaronder staat (bericht = "Gefeliciteerd, je bent geslaagd voor je toets!") wel uitgevoerd.
  4. De ingesprongen regel die onder 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.
  5. Na de if...elif...else is de waarde van bericht dus "Gefeliciteerd, je bent geslaagd voor je toets!".
Voorbeeld 2: de elif-statement wordt uitgevoerd
procent_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?

  1. De waarde 50 wordt opgeslagen in de variabele procent_op_toets_behaald.
  2. De 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 >.
  3. Omdat die vergelijking niet waar (False) is, wordt de ingesprongen regel die daaronder staat (bericht = "Gefeliciteerd, je bent geslaagd voor je toets!") niet uitgevoerd.
  4. De 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 ==.
  5. Omdat die vergelijking waar (True) is, wordt de ingesprongen regel die daaronder staat (bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!") wel uitgevoerd.
  6. De ingesprongen regel die onder else: staat (bericht = "Sorry, volgende keer beter.") wordt genegeerd, want de voorwaarde was True.
  7. Na de if...elif...else is de waarde van bericht dus "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!".
Voorbeeld 3: de else-statement wordt uitgevoerd
procent_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?

  1. De waarde 30 wordt opgeslagen in de variabele procent_op_toets_behaald.
  2. De 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 >=.
  3. Omdat die vergelijking niet waar (False) is, wordt de ingesprongen regel die daaronder staat (bericht = "Gefeliciteerd, je bent geslaagd voor je toets!") niet uitgevoerd.
  4. De 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 ==.
  5. Omdat die vergelijking niet waar (False) is, wordt de ingesprongen regel die daaronder staat (bericht = "Oei, je hebt het echt op het nippertje gehaald, gefeliciteerd!") niet uitgevoerd.
  6. De ingesprongen regel die onder else: staat (bericht = "Sorry, volgende keer beter.") zal dus worden uitgevoerd.
  7. Na de if...else is de waarde van bericht dus "Sorry, volgende keer beter.".



Opdracht

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.