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 2: and / or / not

Logische operatoren combineren meerdere condities tot รฉรฉn beslissing. and vereist dat alles waar is, or heeft genoeg aan รฉรฉn, en not draait een resultaat om.

De drie logische operatoren

Meerdere voorwaarden combineren

Tot nu toe checkte je รฉรฉn voorwaarde. Nu combineer je er meerdere: "A EN B moeten beide waar zijn" of "A OF B โ€” รฉรฉn is genoeg". Daarvoor zijn logische operatoren.

De drie operatoren

  • and โ€” beide voorwaarden moeten True zijn
  • or โ€” minstens รฉรฉn voorwaarde moet True zijn
  • not โ€” draait een voorwaarde om (True โ†” False)

Voorbeelden

x = True
y = False

# and โ€” beide moeten True zijn
if x and y:
    print("Beide waar")

# or โ€” minstens รฉรฉn moet waar zijn
if x or y:
    print("Minstens รฉรฉn waar")

# not โ€” draait om
if not y:
    print("y is niet waar")

Live: interactieve waarheidstabel

Klik op de toggles hieronder en zie hoe and, or en not werken:

A = True
B = True
A and B
True
A or B
True
not A
False
AB A and BA or Bnot A
TrueTrue TrueTrueFalse
TrueFalse FalseTrueFalse
FalseTrue FalseTrueTrue
FalseFalse FalseFalseTrue

Jouw opdracht: samengestelde systeemcheck

Schrijf een systeemcheck die drie waardes tegelijk bewaakt. Gebruik and, or en not op de juiste plek.

disk_free     = 45   # %
cpu_load      = 30   # %
temperature   = 48   # ยฐC

disk_ok = disk_free >= 20
cpu_ok  = cpu_load <= 80
temp_ok = temperature <= 70

# TODO: check of alles OK is โ†’ print "Backup toegestaan"
if ???:
    print("Backup toegestaan")

# TODO: check of er iets mis is โ†’ print "Backup geweigerd"
if ???:
    print("Backup geweigerd")

# TODO: aparte schijfwaarschuwing met not
if ???:
    print(f"Waarschuwing: nog {disk_free}% vrij")

Acceptatiecriteria

  • Drie aparte boolean-variabelen (disk_ok, cpu_ok, temp_ok).
  • De eindtoestand is berekend met and over alle drie.
  • Weigeringsmelding gebruikt or en not correct.
  • Getest met drie scenario's: alles OK, alleen de cpu te hoog, alles fout.
  • Je kunt uitleggen wat kortsluitgedrag betekent en wanneer het optreedt.