Entscheidungen treffen · Übung
Verbinde Bedingungen
Eine Bedingung kann eine einzelne Frage stellen, etwa age >= 18. Viele praktische Entscheidungen hängen von zwei oder mehr Fragen ab.
Python bietet die booleschen Operatoren and und or, um Bedingungen zu verbinden.
and verlangt beide Bedingungen
Ein and-Ausdruck ist nur dann True, wenn die Bedingung auf beiden Seiten wahr ist:
Hier ist age >= 18 gleich True, und auch has_ticket ist True. Deshalb ist das gemeinsame Ergebnis True.
Ändere has_ticket auf False und führe das Beispiel erneut aus. Eine falsche Bedingung macht den gesamten and-Ausdruck falsch.
| Linke Bedingung | Rechte Bedingung | Ergebnis mit and |
|---|---|---|
True | True | True |
True | False | False |
False | True | False |
False | False | False |
Verwende and, wenn jede Anforderung erfüllt sein muss.
or verlangt mindestens eine Bedingung
Ein or-Ausdruck ist True, wenn mindestens eine Bedingung wahr ist, auch wenn beide wahr sind:
Das Ergebnis ist True, weil is_holiday wahr ist. Beide Bedingungen müssten falsch sein, damit dieser or-Ausdruck False ergibt.
| Linke Bedingung | Rechte Bedingung | Ergebnis mit or |
|---|---|---|
True | True | True |
True | False | True |
False | True | True |
False | False | False |
Verwende or, wenn eine erfüllte Möglichkeit ausreicht.
Wiederhole die Variable bei einer Bereichsprüfung
Um zu fragen, ob ein Wert zwischen zwei Grenzen liegt, schreibe auf jeder Seite von and einen vollständigen Vergleich:
Lies den Ausdruck in zwei Teilen:
temperature >= 18temperature <= 27
Beide müssen wahr sein. temperature >= 18 and <= 27 ist nicht gültig, weil dem zweiten Vergleich links ein Wert fehlt.
Python unterstützt auch eine kompakte Verkettung von Vergleichen. Die ausgeschriebene Form macht aber beide booleschen Fragen sichtbar und bereitet dich darauf vor, unterschiedliche Arten von Bedingungen zu verbinden.
Verwende verbundene Bedingungen in einer Entscheidung
Ein kombinierter boolescher Ausdruck kann direkt nach if stehen:
Der erste Zweig läuft nur, wenn beide Anforderungen wahr sind.
Bei umfangreicherer Logik können klare Namen für boolesche Variablen die abschließende Entscheidung lesbarer machen:
Jede Zeile beantwortet eine verständliche Frage. Das Endergebnis verbindet Antworten, die bereits sinnvolle Namen haben.
Schreibe die Operatoren als Wörter
Python verwendet die kleingeschriebenen Wörter and und or. Es verwendet für diese Operationen nicht && und ||, wie manche anderen Programmiersprachen.
Wenn sich eine Bedingung nur schwer laut aussprechen lässt, zerlege sie wie im vorherigen Beispiel in benannte boolesche Werte. Verständliche Logik ist wichtiger, als jede Regel in eine Zeile zu quetschen.
Ein Programm soll den Eintritt erlauben, wenn ein Besucher eine Eintrittskarte hat und mindestens 18 Jahre alt ist. Welche Bedingung drückt diese Regel aus?
Was gibt dieser Code aus?
is_weekend = False
is_holiday = False
print(is_weekend or is_holiday)Verbinde Bedingungen für einen Tagesplan
Die Übung gibt eine Temperatur und zwei boolesche Kalenderangaben vor. Erstelle drei boolesche Werte:
comfortable_temperatureist wahr, wenn die Temperatur mindestens dem Minimum und höchstens dem Maximum entspricht.day_offist wahr, wenn Wochenende oder Feiertag ist.outdoor_timeist wahr, wenn die Temperatur angenehm und der Tag frei ist.
Die vorgegebene if/else-Anweisung macht aus dem abschließenden booleschen Ergebnis eine Empfehlung.
Aufgabe
Ersetze die drei booleschen Platzhalter durch verbundene Bedingungen.
Setze
comfortable_temperaturemithilfe beider Temperaturgrenzen undand.Setze
day_offausis_weekendundis_holidaymitor.Setze
outdoor_timeauscomfortable_temperatureundday_offmitand.
Lass die festen Werte und den vorgegebenen Ausgabecode unverändert.