Booleans
Voordat we met if en else kunnen beginnen moeten we even stilstaan bij de zogenaamde booleans.
Een boolean is een variabele die slechts twee waarden kan hebben: True (waar) of False (onwaar).
Dit zijn begrippen die nodig zijn om een if-statement te laten werken.
Flowchart
Een flowchart is een schematische weergave van een if-statement.
In deze flowchart wordt alleen een eenvoudige if-voorwaarde gebruikt. Als de voorwaarde waar (True) is, wordt het if-codeblok uitgevoerd en stopt het programma daarna.
Als de voorwaarde niet waar (False) is, slaat het programma het if-codeblok over en stopt het direct. Deze structuur gebruik je als er maar één actie hoeft te gebeuren wanneer de voorwaarde waar is.
Dit is een if-elif-structuur.
Elif is de verkorte schrijfwijze van else if.
Eerst wordt een voorwaarde gecontroleerd. Als de voorwaarde waar (True) is, wordt het if-codeblok uitgevoerd, daarna stopt het programma.
Als de voorwaarde niet waar (False) is, wordt het elif-codeblok uitgevoerd, gevolgd door het stoppen van het programma. Deze structuur gebruik je als er verschillende acties moeten gebeuren, afhankelijk van of de voorwaarde waar of niet waar is.
Dit is een if-elif-else-structuur, waarbij meerdere condities worden gecontroleerd.
Eerst wordt de eerste voorwaarde gecontroleerd. Als deze waar is, wordt het if-codeblok uitgevoerd. Als de eerste voorwaarde niet waar is, wordt de eerstvolgende elif-voorwaarde gecontroleerd, enzovoort. Dit proces gaat door totdat een van de voorwaarden waar is, waarna het bijbehorende elif-codeblok wordt uitgevoerd. Als geen van de voorwaarden waar is, wordt alsnog het else-codeblok uitgevoerd. Deze structuur is handig als je meer dan twee mogelijke situaties wilt controleren.
IF
Met if kun je dus waardes van een variabele controleren en beslissingen maken in je code.
Achter if komt een vergelijking (voorwaarde) waarvan de uitkomst een boolean is, dus True of False
leeftijd = 11
if leeftijd < 12:
print("Je bent nog jonger dan 12. \nHelaas mag je nog niet in de rollercoaster.")
De printopdracht wordt uitgevoerd omdat de uitkomst van if leeftijd < 12 waar (True) is.
Je bent nog jonger dan 12.
Helaas mag je nog niet in de rollercoaster.
ELIF
We gaan de code een beetje uitbreiden.
Elif is de afkorting van else if.
Dus als de eerste vergelijking (achter if) False is wordt er een nieuwe vergelijking gemaakt.
In de elif voorwaarde zie je het dubbele =teken. Hiermee geef je python opdracht om te kijken of twee dingen precies hetzelfde zijn.
Omdat leeftijd 12 is, is de vergelijking in elif dus True.
De opdrachtregel onder elif wordt dus uitgevoerd.
Heb je in de code gezien dat er een backslash met de letter \n staat?
Dat betekent dat python in de shell op een nieuwe regel begint met de tekst die daarachter komt.
leeftijd = 12
if leeftijd < 12:
print("Je bent nog jonger dan 12. \nHelaas mag je nog niet in de rollercoaster.")
elif leeftijd == 12:
print("Je bent precies 12 \nHoera, je mag in de rollercoaster")
Je bent precies 12
Hoera, je mag in de rollercoaster
ELSE
We gaan de code nog een keer wat uitbreiden.
Want als je jarig bent geweest is je leeftijd 13.
In de code hieronder zullen If en elif beiden False zijn
We nu gaan een else toevoegen
Die wordt altijd uitgevoerd als if en alle elifs False zijn!
leeftijd = 13
if leeftijd < 12:
print("Je bent nog jonger dan 12. \nHelaas mag je nog niet in de rollercoaster.")
elif leeftijd == 12:
print("Je bent precies 12 \nHoera, je mag in de rollercoaster")
else:
print("Je bent ouder dan 12 \nHoera, je mag in de rollercoaster")
Je bent ouder dan 12
Hoera, je mag in de rollercoaster.
String to number: int()
We gaan nog een klein stapje verder door de variabele via een prompt te laten invoeren door de gebruiker.
In de shell zal dan een foutmelding staan.
Omdat de waarde van leeftijd een gegeven is dat uit de shell teruggestuurd wordt naar de code, denkt Python dat het een string is.
Een string kan niet groter, kleiner of gelijk zijn aan een getal.
Daarom moeten we de variabele leeftijd parsen naar een number.
Dat doen we met int(leeftijd).
leeftijd = input('Wat is je leeftijd? ')
if int(leeftijd) < 12:
print("Je bent nog jonger dan 12. \nHelaas mag je nog niet in de rollercoaster.")
elif int(leeftijd) == 12:
print("Je bent precies 12 \nHoera, je mag in de rollercoaster")
else:
print("Je bent ouder dan 12 \nHoera, je mag in de rollercoaster")
Je bent nog jonger dan 12.
Helaas mag je nog niet in de rollercoaster.
Je bent precies 12
Hoera, je mag in de rollercoaster
Je bent ouder dan 12
Hoera, je mag in de rollercoaster.
Opdracht:
Je gaat bepalen of iemand zich in Nederland of op Aruba bevindt op basis van een aantal simpele vragen.
Schrijf een Python-programma dat met behulp van if-elif-else condities bepaalt waar de persoon is, door met een prompt-opdracht naar drie dingen te vragen.
Stappen:
- Vraag de gebruiker of het regent. Het antwoord moet ‘ja’ of ‘nee’ zijn.
- Vraag de gebruiker of de zon schijnt. Het antwoord moet ‘ja’ of ‘nee’ zijn.
- Vraag de gebruiker of er muziek is. Het antwoord moet ook hier ‘ja’ of ‘nee’ zijn.
Gebruik de volgende regels voor je beslissingen (if-elif-elif-else):
- Als het regent, zeg dan dat de gebruiker in Nederland is.
- Als de zon niet schijnt, zeg dan dat de gebruiker in Nederland is.
- Als er geen muziek is, zeg dan dat de gebruiker in Nederland is.
- In alle andere gevallen, zeg dat de gebruiker op Aruba is.