3.7 Logische Ausdrücke
Neben den arithmetischen Operatoren gibt es einen zweiten Satz von Operatoren, die das Vergleichen von Zahlen ermöglichen:
>>> 3 < 4
True
Hier wird getestet, ob 3 kleiner ist als 4. Auf solche Vergleiche antwortet der Interpreter mit einem Wahrheitswert, also mit True (dt. »wahr«) oder False (dt. »falsch«). Ein Vergleich wird mithilfe eines sogenannten Vergleichsoperators, in diesem Fall <, durchgeführt.
Tabelle 3.2 führt die Vergleichsoperatoren auf:
Vergleich | Bedeutung |
---|---|
3 == 4 | Ist 3 gleich 4? Beachten Sie das doppelte Gleichheitszeichen, das den Vergleich von einer Zuweisung unterscheidet. |
3 != 4 | Ist 3 ungleich 4? |
3 < 4 | Ist 3 kleiner als 4? |
3 > 4 | Ist 3 größer als 4? |
3 <= 4 | Ist 3 kleiner oder gleich 4? |
3 >= 4 | Ist 3 größer oder gleich 4? |
Allgemein kann für 3 und 4 ein beliebiger arithmetischer Ausdruck eingesetzt werden. Wenn zwei arithmetische Ausdrücke durch einen der oben genannten Operatoren miteinander verglichen werden, erzeugt man einen logischen Ausdruck:
(a - 7) < (b * b + 6.5)
Neben den bereits eingeführten arithmetischen Operatoren gibt es drei logische Operatoren, mit denen Sie das Ergebnis eines logischen Ausdrucks verändern oder zwei logische Ausdrücke miteinander verknüpfen können.
Der Operator not kehrt das Ergebnis eines Vergleichs um, macht also aus True False und aus False True. Der Ausdruck not (3 < 4) ist demnach das Gleiche wie 3 >= 4:
>>> not (3 < 4)
False
>>> not (4 < 3)
True
Der Operator and bekommt zwei logische Ausdrücke als Operanden und ergibt nur dann True, wenn sowohl der erste als auch der zweite Ausdruck True ergeben haben. Er entspricht damit der natürlichsprachigen »Und«-Verknüpfung zweier Satzteile. Im Beispiel kann dies so aussehen:
>>> (3 < 4) and (5 < 6)
True
>>> (3 < 4) and (4 < 3)
False
Der Operator or entspricht dem natürlichsprachigen »Oder«. Er bekommt zwei logische Ausdrücke als Operanden und ergibt nur dann False, wenn sowohl der erste Ausdruck als auch der zweite False ergeben haben. Der Operator ergibt also True, wenn mindestens einer seiner Operanden True ergeben hat:
>>> (3 < 4) or (5 < 6)
True
>>> (3 < 4) or (4 < 3)
True
>>> (5 > 6) or (4 < 3)
False
Wir haben der Einfachheit halber hier nur Zahlen miteinander verglichen. Selbstverständlich ergibt ein solcher Vergleich nur dann einen Sinn, wenn komplexere arithmetische Ausdrücke miteinander verglichen werden. Durch die vergleichenden Operatoren und die drei booleschen Operatoren not, and und or können schon sehr komplexe Vergleiche erstellt werden.
[»] Hinweis
Beachten Sie, dass bei allen Beispielen aus Gründen der Übersicht Klammern gesetzt wurden. Durch Prioritätsregelungen der Operatoren untereinander sind diese überflüssig. Das bedeutet, dass jedes hier vorgestellte Beispiel auch ohne Klammern wie erwartet funktionieren würde. Trotzdem ist es gerade am Anfang sinnvoll, durch Klammerung die Zugehörigkeiten visuell eindeutig zu gestalten. Eine Tabelle mit den Prioritätsregeln für Operatoren, der sogenannten Operatorrangfolge, finden Sie in Kapitel 11, »Operatoren«.