Sprint 2 ยท Beslissingen  ยท  US2: Beslissingen schrijven

Als developer, wil ik beslissingen in mijn code kunnen opschrijven met if/elif/else en meerdere voorwaarden kunnen combineren, zodat mijn programma per situatie precies รฉรฉn passende keuze maakt.

Taak 3: Chained comparisons & ternary

Python laat je vergelijkingen aan elkaar ketenen: 20 < battery < 100 leest zoals wiskunde. De ternary-operator maakt een eenregelige if/else mogelijk voor simpele keuzes.

Chained comparisons & ternary operator

Chained comparison: twee voorwaarden in รฉรฉn

Stel je voor: je wilt checken of een getal tussen 10 en 50 ligt. Normaal schrijf je:

if x >= 10 and x < 50:
    print("In bereik")

Je ziet dat x twee keer voorkomt. Python laat je dit korter schrijven door voorwaarden aan elkaar te ketenen:

if 10 <= x < 50:
    print("In bereik")

Dit leest precies als wiskundige notatie: "10 kleiner-of-gelijk x kleiner dan 50". Veel duidelijker!

Ternary operator: if/else op รฉรฉn regel

Normaal schrijf je if/else zo:

if x < 20:
    result = "klein"
else:
    result = "groot"

Voor simpele keuzes kun je dit korter schrijven met de ternary operator:

result = "klein" if x < 20 else "groot"

Lees het als: "result wordt 'klein' als x kleiner is dan 20, anders 'groot'".

Je kunt het ook direct in een tekst gebruiken:

print(f"x={x}: {'klein' if x < 20 else 'groot'}")
Maar: ternary is alleen voor simpele keuzes. Zodra je meer dan twee opties hebt of de voorwaarde ingewikkelder wordt, gebruik je normale if/elif/else. Leesbaarheid gaat altijd voor kortheid.

Live voorbeeld: chained comparison

Versleep de schuifbalk en zie hoe Python de kettingvergelijking evalueert:

x = 30
Resultaat
True

Jouw opdracht: systeemstatus in รฉรฉn melding

Combineer chained comparisons en ternary om de systeemstatus samen te vatten. Test met minstens vijf combinaties van disk_free en cpu_load.

disk_free = 55
cpu_load  = 70

# TODO: gebruik chained comparison voor safe_to_backup
safe_to_backup = ???   # 20 <= disk_free < 100 AND 0 <= cpu_load < 80

# TODO: gebruik ternary om de status te omschrijven
status = ???   # "veilig" als safe_to_backup, anders "onveilig"

# TODO: schrijf in รฉรฉn f-string: vrije ruimte %, cpu %, status
print(f???)

Acceptatiecriteria

  • safe_to_backup gebruikt een chained comparison (niet twee losse and).
  • status is bepaald met een ternary, niet met een if/else-blok.
  • De uitvoer bevat disk_free, cpu_load รฉn status in รฉรฉn zin.
  • Getest met (55, 70), (10, 70), (55, 95), (0, 70), (100, 50) โ€” elk scenario klopt.
  • Je kunt uitleggen wanneer je ternary kiest boven if/else.