Zum Hauptinhalt springen

Vergleichsoperatoren und logische Operatoren

Vergleichsoperatoren

Was sind Vergleichsoperatoren, und wie funktionieren sie?

Wir verwenden Vergleichsoperatoren um zwei Werte miteinander zu vergleichen; beispielsweise um in for-Schleifen oder if-Verzweigungen eine Bedingung auszudrücken.

Dies tun wir jeweils in Form einer Ja-/Nein-Frage; z.B.

  • Ist 5 grösser als 4? Ja.
  • Ist 10 kleiner als 20? Nein.
  • Ist 100 gleich 100? Ja.

Im Normalfall steht auf mindestens einer Seite eines solchen Vergleichs natürlich eine Variable, deren Wert aktuellen Wert wir überprüfen wollen. So könnten wir zum Beispiel prüfen:

  • Ist a grösser als 4?
  • Ist b kleiner als 20?
  • Ist x gleich y?

Das Ergebnis solcher Vergleichsausdrücke hängt dann vom aktuellen Wert der entsprechenden Variable(n) ab, ist aber immer entweder ja (der Vergleich trifft zu) oder nein (der Vergleich trifft nicht zu). In Python verwenden wir für die Werte ja und nein (respektive, wahr oder falsch) die zwei speziellen Wörter True und False.

Nachfolgend finden Sie eine Liste der Vergleichsoperatoren, die uns in Python zur Verfügung stehen:

OperatorBedeutungKommentar, Beispiel
>grösser als5 > 1 ist True
1 > 5 ist False
5 > 5 ist False
<kleiner als1 < 5 ist True
5 < 1 ist False
5 < 5 ist False
>=grösser oder gleich6 >= 5 ist True
5 >= 5 ist True
5 >= 6 ist False
<=kleiner oder gleich5 <= 6 ist True
5 <= 5 ist True
6 <= 5 ist False
==gleich5 == 5 ist True
"hallo" == "hallo" ist True
6 == 5 ist False
"hallo" == "HALLO" ist False

Achtung: Im Gegensatz zur Zuweisung (z.B. a = 5, um der Variable a den Wert 5 zuzuweisen) verwenden wir beim Vergleichen zwei Gleichheitszeichen (==)!1

Logische Operatoren

Was sind logische Operatoren und wie funktionieren sie?

Wir verwenden logische Operatoren, um mehrere Vergleichsausdrücke wiederum in Form einer Ja-/Nein-Frage miteinander zu kombinieren. So könnte wir beispielsweise prüfen wollen:

  • Ist x grösser als 10 und ist y kleiner als 0?
  • Ist richtung gleich "rechts" oder gleich "links"?2
  • Ist temperatur kleiner als 5 oder regenwahrscheinlichkeit grösser als 0.8?

Achtung: Das oder versteht sich nicht als entweder/oder, sondern als und/oder! Im letzten Beispiel ist die Antwort auch dann ja, wenn sowohl temperatur kleiner als 5 als auch regenwahrscheinlichkeit grösser als 0.8 ist.

OperatorBedeutungKommentar, Beispiel
andundIst genau dann True, wenn sowohl die linke als auch die rechte Seite True sind.
1 == 1 and 6 > 5 ist True
1 == 1 and 5 > 6 ist False
oroderIst genau dann True, wenn mindestens die linke oder die rechte Seite True ist.
1 == 1 or 6 > 5 ist True
1 == 1 or 5 > 6 ist True
1 == 2 or 5 > 6 ist False

Für zwei Variablen a und b können wir daraus folgende Wahrheitstabelle ableiten:

aba and ba or b
TrueTrueTrueTrue
TrueFalseFalseTrue
FalseTrueFalseTrue
FalseFalseFalseFalse

Footnotes

  1. Sie können sich die Zuweisung als Befehl vorstellen: a = 5 heisst, wir befehlen dem Computer, die Variable a auf den Wert 5 zu setzen. Ein Vergleichsoperator ist hingegen eine Prüfung: Mit a == 5 prüfen wir, ob a den Wert 5 hat. Wir könnten die Befehle auch aneinanderreihen: Wenn wir zuerst den Befehl a = 5 ausführen, dann müsste die Prüfung a == 5 anschliessend True ergeben. Praktisch macht diese Prüfung aber natürlich wenig Sinn, wenn wir unmittelbar vorher explizit die Zuweisung vornehmen.

  2. Auch dabei handelt es sich um Ja-/Nein-Frage: Die Antwort ist ja, wenn richtung entweder gleich "links" oder gleich "rechts" ist, und nein, wenn Sie irgendeinen anderen Wert hat (z.B. "hoch" oder "runter").