If – then -else
Een van de belangrijkste statements in het programmeren is de if-then-else. Hier test je of iets waar is of niet – het ‘iets’ noemen we een conditie of een expressie. Mooi, maar de uitkomst van de expressie betekent altijd WAAR of NIET WAAR.
In Python:
if True : print("True schrijf je niet als true of TRUE") if 2 < 3 : print("ja hehe") else : print("leer tellen") if False: print("hier nooit") else: print("Goed fout")
Let op het volgende:
- Je zegt misschien “if-then-else” maar in Python schrijf je nooit then, wel de dubbele punt.
- else : dat stuk wordt uitgevoerd als de expressie onwaar (False) was.
- True en False worden booleans genoemd. Let op: TRUE of false werken niet.
- Je hebt nu de volgende data-types leren kennen: Integer, String, Float, Boolean, List. Remember!
- Je kunt getallen omzetten in een boolean met de functie bool().
- bool(0) is False
- bool(x) met x<>0 geeft True.
Logische Expressies
Een lastig gedeelte is de logische expressie: hier gebruik je vaak een test met de volgende vergelijkings-operatoren:
- x == 3. Equals. Hier test je of x gelijk is aan 3 (de integer). Het is dus geen assignment (toekenning van waarde, zoals x=3)
- x != 3. Is Unequal.Is het ongelijk. Is de waarde – of het type -anders ? In sommige talen is <> ook mogelijk, maar niet in Python.
- x < 3. Kleiner
- x <= 3. Kleiner of gelijk
- x > 3. Groter
- x >= 3. Groter of gelijk.
Oefeningen met If-Then-Else en Logische Expressies
Geef bij elke opdracht aan welke je doet, met print(“Opdracht 1”)
Opdracht 1. Vriezen.
temp = 2
Schrijf de code die de temp onderzoekt en aangeeft of het Vriest, Dooit of Precies Nul graden is.
Opdracht 2. Vraag naar het weer.
Verbeter de code uit Opdracht 1, maar begint met
temp = input("Hoe warm is het?")
tip: je moet m omzetten naar Int vanuit String met de functie int().
Opdracht 3. Morgen meer weer.
Vraag de gebruiker naar de verwachting voor morgen en ook naar de temperatuur van nu.Test en geef nu een van de volgende resultaten:
- Morgen warmer dan vandaag
- Morgen kouder dan vandaag
- Morgen hetzelfde weer.
Opdracht 4. Even of oneven
We kijken naar de functie modulus, die je noteert als %. Het betekent: de rest na deling. Kijk:
print( 3 % 2) 1 print( 4 % 2) 0 print( 5 % 2) 1
3 / 2 is natuurlijk 1,5. Maar met % doen we alleen hele getallen, dus je krijgt: 3 / 2 = 1 rest 1. En die rest, dat is dus de uitkomst van %.
Hier vind je het begin van de functie is_even(getal). Een gedeelte van de functie heb ik gewist met ******. Jouw opdracht: repareer de functie is_even.
def is_even(getal): if ******** : return True else: return False print(is_even(2)) print(is_even(3)) print(is_even(4)) print(is_even(0))
P.S.: we hadden beter return(********) kunnen doen, maar zo is het wel duidelijker.
Opdracht 5. Letter R in de maand.
Ken je de uitdrukking: als de R in de maand zit. De een zegt: dan komt er regen. of griep. Hoe dan ook, niet best.
- maak een lijst maanden, met alle maanden erin als string.
- maak een for loop over de lijst maanden.
- gebruik de test:
if "r" in maand:
- Het keyword in test of de ene string voorkomt in de andere.
- Test of de r voorkomt en print je resultaat zodat we het snappen.
- je verwachte output is:
R in de maand januari R in de maand februari R in de maand maart R in de maand april Geen R in de maand mei Geen R in de maand juni Geen R in de maand juli Geen R in de maand augustus R in de maand september R in de maand oktober R in de maand november R in de maand december