0%

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:

Try it

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 BedingungRechte BedingungErgebnis mit and
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

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:

Try it

Das Ergebnis ist True, weil is_holiday wahr ist. Beide Bedingungen müssten falsch sein, damit dieser or-Ausdruck False ergibt.

Linke BedingungRechte BedingungErgebnis mit or
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

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:

Try it

Lies den Ausdruck in zwei Teilen:

  • temperature >= 18

  • temperature <= 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:

Try it

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:

Try it

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:

  1. comfortable_temperature ist wahr, wenn die Temperatur mindestens dem Minimum und höchstens dem Maximum entspricht.

  2. day_off ist wahr, wenn Wochenende oder Feiertag ist.

  3. outdoor_time ist 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_temperature mithilfe beider Temperaturgrenzen und and.

  • Setze day_off aus is_weekend und is_holiday mit or.

  • Setze outdoor_time aus comfortable_temperature und day_off mit and.

Lass die festen Werte und den vorgegebenen Ausgabecode unverändert.