0%

Beslissingen nemen · oefening

Combineer voorwaarden

Een voorwaarde kan één vraag stellen, zoals age >= 18. Veel beslissingen in de praktijk hangen af van twee of meer vragen.

Python biedt de booleaanse operatoren and en or om voorwaarden te combineren.

and vereist beide voorwaarden

Een and-expressie is alleen True als de voorwaarden aan beide kanten waar zijn:

Try it

Hier is age >= 18 gelijk aan True en is has_ticket ook True. Het gecombineerde resultaat is dus True.

Verander has_ticket in False en voer het voorbeeld opnieuw uit. Eén onware voorwaarde maakt de hele and-expressie onwaar.

LinkervoorwaardeRechtervoorwaardeResultaat met and
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Gebruik and als aan elke eis moet zijn voldaan.

or vereist minstens één voorwaarde

Een or-expressie is True als minstens één van de voorwaarden waar is, dus ook als ze allebei waar zijn:

Try it

Het resultaat is True, omdat is_holiday waar is. Beide voorwaarden moeten onwaar zijn om deze or-expressie False te laten opleveren.

LinkervoorwaardeRechtervoorwaardeResultaat met or
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Gebruik or als één passende mogelijkheid voldoende is.

Herhaal de variabele bij een bereikcontrole

Om te vragen of een waarde tussen twee grenzen valt, schrijf je aan beide kanten van and een volledige vergelijking:

Try it

Lees de expressie in twee delen:

  • temperature >= 18

  • temperature <= 27

Beide moeten waar zijn. temperature >= 18 and <= 27 schrijven is niet geldig, omdat de tweede vergelijking geen waarde aan de linkerkant heeft.

Python ondersteunt ook een compacte keten van vergelijkingen. De uitgeschreven vorm maakt beide booleaanse vragen zichtbaar en bereidt je voor op het combineren van verschillende soorten voorwaarden.

Gebruik gecombineerde voorwaarden in een beslissing

Een gecombineerde booleaanse expressie kan rechtstreeks achter if staan:

Try it

De eerste tak wordt alleen uitgevoerd als beide eisen waar zijn.

Bij langere logica kunnen duidelijke namen voor booleaanse variabelen de uiteindelijke beslissing beter leesbaar maken:

Try it

Elke regel beantwoordt één begrijpelijke vraag. Het uiteindelijke resultaat combineert antwoorden die al nuttige namen hebben.

Schrijf de operatoren als woorden

Python gebruikt de woorden and en or in kleine letters. Het gebruikt voor deze bewerkingen geen && en ||, zoals sommige andere programmeertalen doen.

Als een voorwaarde lastig hardop te zeggen wordt, splits die dan op in benoemde booleaanse waarden, zoals in het vorige voorbeeld. Duidelijke logica is belangrijker dan alle regels op één regel code passen.

Een programma moet toegang toestaan als een bezoeker een kaartje heeft en minstens 18 is. Welke voorwaarde drukt die regel uit?

Wat drukt deze code af?

is_weekend = False
is_holiday = False
print(is_weekend or is_holiday)

Combineer voorwaarden voor een dagplanning

De oefening geeft je een temperatuur en twee booleaanse kalenderwaarden. Maak drie booleaanse waarden:

  1. comfortable_temperature is waar als de temperatuur minstens het minimum en hoogstens het maximum is.

  2. day_off is waar als het weekend of een feestdag is.

  3. outdoor_time is waar als de temperatuur aangenaam is en het een vrije dag is.

De meegeleverde if/else-instructie zet het uiteindelijke booleaanse resultaat om in een aanbeveling.

Opdracht

Vervang de drie tijdelijke booleaanse waarden door gecombineerde voorwaarden.

  • Stel comfortable_temperature in met beide temperatuurgrenzen en and.

  • Stel day_off in op basis van is_weekend en is_holiday met or.

  • Stel outdoor_time in op basis van comfortable_temperature en day_off met and.

Laat de vaste waarden en de meegeleverde uitvoercode ongewijzigd.