Beslissingen nemen · oefening
Keer voorwaarden om en verduidelijk ze
De operatoren and en or combineren booleaanse waarden. Python heeft nog één booleaanse operator met een eenvoudige taak: not keert een booleaanse waarde om.
Keer een booleaanse waarde om met not
Voer dit voorbeeld uit:
Omdat is_closed gelijk is aan False, levert not is_closed de waarde True op.
| Beginwaarde | Resultaat met not |
|---|---|
True | False |
False | True |
Dat is de hele regel. not verandert de oorspronkelijke variabele niet, maar levert de tegenovergestelde booleaanse waarde op.
Lees not als onderdeel van de vraag
not leest vooral prettig bij een booleaanse variabele met een duidelijke naam:
Lees if not is_raining: als ‘als het niet regent’. De code klinkt als de vraag die het programma moet stellen, en dat is meestal een goed teken.
Je kunt de omgekeerde waarde ook opslaan voor later:
Het antwoord is True: zonder boeking heeft deze bezoeker er een nodig.
Kies een directe vergelijking als die duidelijker leest
not kan een vergelijking omkeren, maar dat levert niet altijd de duidelijkste formulering op:
Beide expressies leveren True op. De directe vergelijking age >= 18 is in één oogopslag makkelijker te begrijpen.
Gebruik not als het natuurlijk klinkt om een benoemd booleaans idee om te keren, zoals not is_closed of not has_permission. Kies de tegenovergestelde vergelijking als die de regel directer uitdrukt.
Welke voorwaarde is de duidelijkste manier om een blok uit te voeren als account_locked onwaar is?
Wat drukt deze code af?
has_ticket = True
needs_ticket = not has_ticket
print(needs_ticket)Keer één nuttig gegeven om
De oefening begint met has_booking op False. Gebruik not om de tegenovergestelde waarde op te slaan in needs_booking en controleer daarna de twee afgedrukte booleaanse waarden. Eén kleine operator, één duidelijke taak.
Opdracht
Vervang de tijdelijke waarde voor needs_booking door een expressie die met not de waarde van has_booking omkeert.
Laat has_booking en de twee meegeleverde printaanroepen ongewijzigd. Het programma moet False afdrukken, gevolgd door True.
Klik op Step in de oefeneditor zodra het werkt. Kijk hoe needs_booking de tegenovergestelde booleaanse waarde krijgt, terwijl has_booking ongewijzigd blijft.