5.1 Vergleiche und der boolesche Datentyp#
Viele Möglichkeiten unserer Gesellschaft stehen nur Volljährigen offen und sind damit an eine Altersangabe gebunden. Wenn jetzt ein Computersystem vorab prüfen soll, ob Volljährigkeit vorliegt oder nicht, dann brauchen wir einen einfachen Vergleich. Daher beschäftigen wir uns in diesem Kapitel mit Vergleichen und dem Datentyp Bool.
Lernziele#
Lernziele
Sie kennen den Datentyp Bool mit seinen beiden Werte True oder False.
Sie kennen die wichtigsten Vergleichsoperatoren für Zahlen und Strings.
Der Datentyp Bool#
Zurück zu dem Beispiel mit der Überprüfung der Volljährigkeit. Angenommen, wir
würden das Alter der Benutzers oder der Benutzerin in der Variable alter
speichern. Damit wäre ein simples Beispiel für eine einfache Bedingung der
mathematische Ausdruck alter < 18
. Der Wert der Variablen alter
wird also
mit der Zahl 18 verglichen. Dieser Vergleich ist entweder wahr (True) oder
falsch (False). Oder anders formuliert, diese Bedingung ist entweder erfüllt
oder nicht erfüllt.
Um den Wahrheitswert einer Bedingung zu speichern, hat Python einen eigenen Datentyp, einen sogenannten booleschen Datentyp. Nach dem englischen Wort wird dieser Datentyp in der Informatik üblicherweise Bool oder Boolean genannt. Das besondere an diesem Datentyp ist, dass eine Variable diesen Datentyps nur zwei verschiedene Werte annehmen kann, nämlich
True: Wahrheitswert ist wahr oder
False: Wahrheitswert ist falsch.
Aber wie kann man dann überprüfen, welcher Datentyp in einer Variablen
gespeichert ist? Dazu gibt es das Kommando type
. Führen Sie die nächste
Code-Zelle aus.
a = False
type(a)
bool
Vergleiche mit Zahlen#
Nachdem wir jetzt den Datentyp kennengelernt haben, mit dem Python das Ergebnis eines Vergleichs speichert, kommen wir nun zu dem Vergleich selbst.
Zunächst beschäftigen wir uns mit mathematischen Vergleichen. In der Mathematik ist ein Vergleich ein Ausdruck mit zwei Argumenten und einem Vergleichsoperator in der Mitte. Die beiden Argumente können auch unterschiedliche Datentypen haben, dann muss der Vergleichsoperator aber sinnvoll für diese Datentypen definiert sein. Z.B. darf man einen Integer mit einem Float vergleichen
3 < 17.2
aber
3 < 'vier'
ist nicht sinnvoll und undefiniert. Es gibt die folgenden Vergleichsoperatoren in Python:
<
kleiner<=
kleiner oder gleich>
größer>=
größer oder gleich==
gleich!=
ungleich
Im interaktiven Modus von Python können wir leicht den Wahrheitsgehalt von Vergleichen überprüfen. Wir setzen eine Variable auf den Wert 7:
x = 7
Jetzt probieren wir in den nachfolgenden Code-Zellen verschiedene Vergleichsoperatoren aus.
Ist x genau gleich 15?
x == 15
False
Ist x kleiner als 42?
x < 42
True
Ist x genau 30?
x == 30
False
Ist x ungleich 42?
x != 42
True
Ist x größer als 30?
x > 30
False
Ist x größer gleich 30?
x >= 30
False
Mini-Übung
Wählen Sie sich eine Zahl. Testen Sie anschließend:
Ist Ihre Zahl kleiner gleich 5?
Ist Ihre Zahl genau 17?
Ist Ihre Zahl nicht gleich 17?
Ist Ihre Zahl positiv?
Ist Ihre Zahl kleiner als -17.7?
# Geben Sie nach diesem Kommentar Ihren Code ein:
Lösung
# Eingabe: Wahl meiner Zahl
x = 33
# kleiner gleich 5?
x <= 5
# genau gleich 17?
x == 17
# nicht gleich 17?
x != 17
# positiv?
x > 0
# kleiner als -17.7?
x < -17.7
Vergleiche mit Strings#
Als nächstes werden wir uns mit der Verwendung von Strings in Vergleichen beschäftigen. Strings werden häufig in Vergleichen verwendet, um festzustellen, ob zwei Strings gleich sind oder ob ein String in einem anderen enthalten ist.
Um festzustellen, ob zwei Strings in Python gleich sind, können wir den
Gleichheitsoperator ==
verwenden. Der Gleichheitsoperator gibt True
zurück,
wenn die beiden Strings exakt übereinstimmen, und False
, wenn sie sich
unterscheiden.
string01 = 'Hallo'
string02 = 'Welt'
string03 = 'Hallo'
string04 = 'hallo'
print(string01 == string02) # Ausgabe: False
print(string01 == string03) # Ausgabe: True
print(string01 == string04) # Ausgabe: False
False
True
False
In diesem Beispiel sind die Strings string01
und string03
gleich. Der String
string02
ist jedoch unterschiedlich von string01
, daher ist das Ergebnis
False
. Beachten Sie auch, dass der String string04
nicht gleich string01
ist, obwohl er den gleichen Wert hat, da Groß- und Kleinschreibung in Python bei
der Vergleichsoperation berücksichtigt werden.
Um zu überprüfen, ob ein String in einem anderen enthalten ist, können wir den
Operator in
verwenden. Der Operator in
gibt True
zurück, wenn der String
in dem anderen String enthalten ist, und False
, wenn nicht.
a
string01 = 'Hallo Welt'
string02 = 'Welt'
string03 = 'Python'
print(string02 in string01) # Ausgabe: True
print(string03 in string01) # Ausgabe: False
True
False
In diesem Beispiel ist der String string02
in dem String string01
enthalten,
daher ist das Ergebnis True
. Der String string03
ist jedoch nicht in
string01
enthalten, daher ist das Ergebnis False
.
Beachten Sie, dass bei der Überprüfung die Groß- und Kleinschreibung in Python
beachtet werden muss. Wenn wir also nach dem String 'welt'
suchen, erhalten wir
False
, da der String 'Welt'
großgeschrieben ist.
Wir können auch andere Vergleichsoperationen wie <, >, <=, >= mit Strings verwenden. Diese Operationen vergleichen die Strings nach ihrem lexikographischen Wert, d.h. sie vergleichen die Zeichen eines Strings in der Reihenfolge, in der sie auftreten.
a = "Apfel"
b = "Banane"
print(a < b) # Ausgabe: True
print(a > b) # Ausgabe: False
print(a <= b) # Ausgabe: True
print(a >= b) # Ausgabe: False
True
False
True
False
In diesem Beispiel ist 'Apfel'
kleiner als 'Banane'
, da “A” im Alphabet vor
“B” steht, daher ist das Ergebnis des <
-Operators True
. Der >
-Operator
gibt False
zurück, da 'Apfel'
größer als 'Banane'
ist. Der <=
-Operator
gibt True
zurück, da 'Apfel'
kleiner oder gleich 'Banane'
ist. Der
>=
-Operator gibt False
zurück, da 'Apfel'
nicht größer oder gleich
'Banane
’ ist.