0%

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:

Try it

Weil is_closed gleich False ist, ergibt not is_closed den Wert True.

AusgangswertErgebnis mit not
TrueFalse
FalseTrue

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:

Try it

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:

Try it

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:

Try it

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.