Logische Operatoren: or
Der zweite logische Operator ist or („oder“). „Wenn Samstag oder Sonntag ist, ist Wochenende“:
tag = "Sonntag"
if tag == "Samstag" or tag == "Sonntag":
print("Es ist Wochenende")Das gibt Folgendes aus:
Es ist WochenendeEine mit or verbundene Bedingung ist wahr, wenn mindestens einer ihrer Teile wahr ist. Sie ist nur falsch, wenn alle Teile falsch sind:
True or TrueistTrueTrue or FalseistTrueFalse or TrueistTrueFalse or FalseistFalse
Ein typischer Fehler ist, die Bedingung so abzukürzen, wie wir sprechen: tag == "Samstag" or "Sonntag". Python nimmt den rechten Teil für sich: Er ist nur der Text "Sonntag", kein Vergleich. Text, der nicht leer ist, gilt als wahr, deshalb ist die ganze Bedingung immer wahr, sogar am Montag. Jeder Teil braucht einen eigenen Vergleich: tag == "Samstag" or tag == "Sonntag".
Du kannst and und or in einer Bedingung verwenden. So wie Punkt vor Strich gilt, geht and vor or. Gruppiere mit Klammern, was zusammengehört, wie in der Mathematik:
tag = "Samstag"
temperatur = 15
if (tag == "Samstag" or tag == "Sonntag") and temperatur > 20:
print("Wir machen einen Ausflug")
else:
print("Wir bleiben zu Hause")Das gibt Folgendes aus:
Wir bleiben zu HauseDer Teil in Klammern wird zuerst ausgewertet: Es ist Samstag, also ist er wahr. Aber temperatur > 20 ist falsch, und True and False ist falsch. Ohne die Klammern würde Python zuerst tag == "Sonntag" and temperatur > 20 verbinden, und die Bedingung wäre an jedem Samstag wahr, egal bei welchem Wetter.
So schreibst du es:
Anweisungen
- 1
Ein Kino gibt Studenten und Menschen ab 65 Jahren eine Ermäßigung. Schreibe eine
if-Anweisung, dieErmäßigungausgibt, wennist_studentwahr ist oderaltermindestens65beträgt. Verwendeor. - 2
Neue Regel: Ermäßigung gibt es nur mittwochs. Füge am Ende der Bedingung
and tag == "Mittwoch"hinzu, setze denor-Teil in Klammern und füge einenelse-Zweig hinzu, derVoller Preisausgibt. Heute ist Montag, das Programm gibt alsoVoller Preisaus.