Gebruikershulpmiddelen

Site-hulpmiddelen


program:python:conditie

Condities in Python

In programma's moeten onder bepaalde omstandigheden besluiten genomen over wat een programma moet gaan doen. Deze omstandigheden zien we als condities.

Bijvoorbeeld, je wil een programma´tje schrijven, wat een bepaalde tekst genereerd, afhankelijk van een bepaalde leeftijd. In de volgende tabel zie je een aantal condities, met de bijhorende tekst.

Leeftijd Tekst
0..11 Je bent nog een kind
12..17 Je bent een tiener
18..20 Je bent bijna volwassen
21… Je bent volwassen

In je programma ga je de ingegeven leeftijd controleren en afhankelijk van deze leeftijd de juiste tekst genereren.

[Programmeren met Python] [sbczob.eu]

Conditioneel statement

Een conditioneel statement zetten we op als volgt:

  • Als er een 'bepaalde conditie' geldt, dan ¨Doe iets“, anders “Doe wat anders”

Syntax:

if "conditie¨:
  doe iets
  doe nog iets
else:
  doe wat anders

Nu volgt de rest van het programma.

De eerste regel bevat de “if” conditie, afgesloten met de dubbele punt!
De daarop volgende regel is ingesprongen (vaak een 'tab'). Dit is de éérste instruktie, die uitgevoerd moet worden als de conditie waar (True) is. Als er meer statements moeten volgen voor de waar conditie, dan moeten deze volgende statements even veel ingesprongen zijn. Wanneer je terug gaat naar het vorige inspring niveau, dan is de “if” conditie afhgelopen.
Optioneel kun je nu een aantal instrukties invoeren, die het programma uit moet voeren als de if-conditie niet waar (not True of False) is. Dit doe je met het “else” statement, wat eveneens afgesloten moet worden met een dubbele punt. Daarna spring je op de volgende regel weer in, en geef je een of meerdere instrukties voor de “niet waar” conditie.
Wanneer je nu weer terug gaat naar het standaard inspring niveau, is de if instruktie afgelopen en gaat het programma verder met de volgende instrukties.

Deze syntax moet gevolgd worden, anders zal de interprenter een syntax error geven tijdens uit\voering!

Voorbeeld: Geef twee getallen op en voer een deling uit. Delen door nul mag niet, dus moet je hierop checken!

deling.py
#! /usr/bin/env python3
# =========================
# Programma naam: deling.py
 
# Vraag twee getallen in te geven.
x = float(input("x: "))
y = float(input("y: "))
 
# Deel x door y, maar controleer op y is nul
if y == 0:
  print(y is nul, delen door nul mag niet !)
else:
  print("De deling van", x, ":", y, "is:", x/y)
print("Klaar.")

[top] [Programmeren met Python] [sbczob.eu]

Meerdere conditionele statements

Wanneer je meerdere condities moet controleren, kun je uiteraard in het “else” stukje een nieuw “if¨ statement neerzetten, maar dat kan snel verwarring op gaan leveren. Dit soort programmeren noemen we geneste condities.

if conditie1:
  doe aktie een
else:
  if conditie2:
    doe aktie twee
  else:
    die aktie drie
einde conditioneel statement

Uiteraard ontkom je niet altijd aan geneste condities, maar we kunnen wel eenvoudiger meerdere contities controleren met behulp van de “elif” (else-if) instruktie. De syntax is als volgt:

if conditie1:
  doe aktie een
elif conditie2:
  doe aktie twee
else:
  die aktie drie
einde conditioneel statement

Je ziet dat deze struktuur duidelijker laat zien, wat bij elkaar hoort. De code is hier netjes uitgelijnd!

Als voorbeeld, gaan we terug naar de leeftijd tabel op de top van deze pagina: Vraag om de naam en de leeftijd van de persoon achter het toetsenbord en geef de leeftijds categorie

leeftijd.py
#! /usr/bin/env python3
# ===========================
# Programma naam: leeftijd.py
 
# Vraag om de naam en de leeftijd
naam = input("Hallo, wat is jouw naam: ")
leeftijd = int(input("en wat is je leeftijd: "))
 
# Deel nu de persoon in naar de leeftijds categorie
#   0..11: Kind
if leeftijd <= 11:
    categorie = "een kind"
#   12..17: Tiener
elif leeftijd <= 17:
    categorie = "een tiener"
#   18..20: Bijna volwassen
elif leeftijd <=20:
    categorie = "bijna volwassen"
#   21..: Volwassen
else:
    categorie = "volwassen"
 
# Geef het resultaat weer, naam en categorie
print("Hoi", naam, ", je bent", categorie, ".")

Opmerking:
Zoals je ziet, hoef je niet de complete range op te geven, mits je de juiste volgorde gebruikt. Zodra een conditie geldt, worden de instrukties behorend bij die conditie uitgevoerd. De andere condities worden daarna niet meer gecontroleerd.
Dus als de leeftijd in de range 0..11 ligt (leeftijd ⇐ 11), dan wordt alleen de instruktie categorie = “een kind” uitgevoerd. Ondanks dat de leeftijd ook kleiner/gelijk is dan twintig, wordt de tweede conditie toch niet meer gecheckt. Daarom hoef je bij de tweede conditie geen ondergrens te geven. Deze tweede conditie wordt namelijk pas gecheck als geldt: leeftijd > 11.

[top] [Programmeren met Python] [sbczob.eu]

program/python/conditie.txt · Laatst gewijzigd: 2024/01/15 16:00 door sbczobbeheerder