Skip to main content

Boolsche Ausdrücke, Vergleichsoperatoren und der Datentyp boolean

Neben Ausdrücken deren Wert eine Zahl oder ein Text ist, können wir auch Ausdrücke schreiben, die einen Wahrheitswert (also Wahr oder Falsch) ergeben. Diese werden als boolsche Ausdrücke bezeichnet. Genau wie mit Zahlen können wir auch diese Werte in Variablen speichern, und mithilfe von Operatoren zu komplexen Ausdrücken zusammensetzen.

Im folgenden Video werden diese Ausdrücke im Detail besprochen.

Nach dem schauen des Videos sollten Sie nun die wichtigsten Aspekte kennen, die Sie benötigen um boolsche Ausdrücke zu schreiben. Im folgenden Abschnitt ergänzen wir diese noch durch einige Details und geben Ihnen eine Übersicht über die in Python verfügbaren Vergleichsoperatoren und logischen Operatoren.

Typannotation für boolsche Ausdrücke

Wie wir im Video gesehen haben, gibt es in Python einen speziellen Datentyp für Wahrheitswerte, nämlich den Typ bool. Wenn wir Variablen definieren, die einen Wert vom Typ bool enthalten, können wir diese mit der Typannotation bool versehen. Das sieht dann zum Beispiel so aus:

a: bool = True
b: bool = not a

Wie wir im Artikel zum Thema Typannotationen letzte Woche besprochen haben, sind diese Typannotationen optional und nur informativ. Wir möchten Sie aber an dieser Stelle nochmals ermutigen, diese hinzuschreiben um die Lesbarket Ihres Codes zu erhöhen. Sie helfen sich damit auch selbst, sich im Code zurechtzufinden und Fehler zu vermeiden.

Übersicht der Vergleichsoperatoren und der logischen Operatoren

In der nachfolgenden Tabelle finden Sie alle in Python verfügbaren Vergleichsoperatoren.

OperatorErklärung
==Vergleich auf Gleichheit
!=Vergleich auf Ungleichheit
>Grösser als
>=Grösser oder gleich
<Kleiner als
<=Kleiner oder gleich

Die wichtigsten logischen Operatoren in Python sind or, and und not. Diese verhalten sich gemäss der folgenden Wahrheitstabelle.

b1b2b1 or b2b1 and b2not b1
FalseFalseFalseFalseTrue
FalseTrueTrueFalseTrue
TrueFalseTrueFalseFalse
TrueTrueTrueTrueFalse

Rangfolge der Operatoren (Operatorenpräzedenz)

Aus der Mathematik kennen wir die Punkt- vor Strich-Regel, die besagt, dass Multiplikation und Division jeweils vor Addition und Subtraktion ausgeführt wird. Ähnliche Regeln gelten auch für logische Operatoren. Der not Operator wird dabei immer als erster ausgeführt, danach die and und am Schluss folgt die Auswertung von or. Wenn Sie eine andere Auswertungsreihenfolge möchten, können Sie diese durch entsprechende Klammersetzung erzwingen. Wenn Sie komplexere Ausdrücke schreiben, sollten Sie in jedem Fall immer entsprechend Klammern setzen. Damit helfen Sie dem Leser des Codes den Ausdruck zu verstehen, ohne dass dieser auch noch alle Präzedenzregeln im Kopf haben muss.

Experimentieren Sie doch gleich selbst damit. Testen Sie insbesondere die nachfolgenden Aspekte aus.

Experimente

  • Können Sie statt b = (5 > 3) auch b = 5 > 3 schreiben?
    • Ergibt es denselben Wert?
    • Was ist der Nachteil?
  • Was ist der Typ eines Wahrheitswerts in Python? Also der Typ der vom Befehltypeausgegeben wird (type wurde in Typen der Woche 1 eingeführt).
  • Ergänzen Sie den Code die entsprechenden Typannotationen.
  • Definieren Sie eine Variable und weisen dieser einen Wert zu. Schreiben Sie dann einen Ausdruck, der True zurückgibt wenn der Wert der Variablen grösser als 0 ist und kleiner als 99. Testen Sie Ihren Ausdruck für verschiedene Werte der Variablen.
  • Definieren Sie einen komplexen boolschen Ausdruck wie not a or b and b or a und studieren Sie anhand von diesem die Präzedenzregeln. Setzen Sie die richtigen Klammern, so dass deutlicher wird was passiert.

Fragen und Kommentare

Haben Sie Fragen oder Kommentare zu diesem Artikel? Nutzen Sie das Forum und helfen Sie sich und Ihren Mitstudierenden dieses Thema besser zu verstehen.