Entscheidungen treffen · Übung
Kehre einen booleschen Wert mit not um
Die Operatoren and und or verbinden boolesche Werte. Python hat einen weiteren booleschen Operator mit einer klaren Aufgabe: not kehrt einen booleschen Wert um.
Kehre einen booleschen Wert mit not um
Führe dieses Beispiel aus:
Weil is_closed gleich False ist, ergibt not is_closed den Wert True.
| Ausgangswert | Ergebnis mit not |
|---|---|
True | False |
False | True |
Das ist die vollständige Regel. not verändert die ursprüngliche Variable nicht, sondern erzeugt den entgegengesetzten booleschen Wert.
Lies not als Teil der Frage
Mit einer gut benannten booleschen Variablen ist not besonders verständlich:
Lies if not is_raining: als „wenn es nicht regnet“. Der Code klingt wie die Frage, die das Programm stellen muss. Das ist normalerweise ein gutes Zeichen.
Du kannst den umgekehrten Wert auch für später speichern:
Die Antwort ist True: Ohne Buchung braucht dieser Besucher eine.
Bevorzuge einen direkten Vergleich, wenn er klarer ist
not kann einen Vergleich umkehren, aber das ergibt nicht immer die verständlichste Formulierung:
Beide Ausdrücke ergeben True. Der direkte Vergleich age >= 18 ist auf einen Blick leichter verständlich.
Verwende not, wenn es natürlich klingt, eine benannte boolesche Aussage umzukehren, etwa not is_closed oder not has_permission. Bevorzuge den gegenteiligen Vergleich, wenn er die Regel direkter ausdrückt.
Welche Bedingung ist am klarsten, um einen Block auszuführen, wenn account_locked falsch ist?
Was gibt dieser Code aus?
has_ticket = True
needs_ticket = not has_ticket
print(needs_ticket)Kehre eine nützliche Information um
Die Übung beginnt mit has_booking auf False. Speichere mit not den entgegengesetzten Wert in needs_booking und prüfe dann die beiden ausgegebenen booleschen Werte. Ein kleiner Operator, eine klare Aufgabe.
Aufgabe
Ersetze den Platzhalterwert für needs_booking durch einen Ausdruck, der has_booking mit not umkehrt.
Lass has_booking und die beiden vorgegebenen Ausgabeaufrufe unverändert. Das Programm soll zuerst False und dann True ausgeben.
Wenn es funktioniert, klicke im Übungseditor auf Step. Beobachte, wie needs_booking den entgegengesetzten booleschen Wert erhält, während has_booking unverändert bleibt.