Mithilfe von Kontrollstrukturen wird bestimmt, welche Teile des Codes ausgeführt werden sollen. Die hier vorgestellte if
-Verzweigung dürfte dabei wohl — nicht nur in Python — zu der am meisten genutzten Kontrollstruktur gehören. In diesem Zusammenhang gilt es auch einen Blick auf die Booleschen Werte — also True
und False
— zu werfen. Denn die Auswertung eines booleschen Ausdrucks bestimmt, welcher Code ausgeführt wird. Betrachten wir dazu nachfolgendes Beispiel:
value = 20
if value == 20:
print("The value is 20")
Eine if-Verzweigung wird mit dem Schlüsselwort if
eingeleitet. Es folgt der boolesche Ausdruck value == 20
. Unter Anwendung des Vergleichsoperators ==
wird dieser zu True
evaluiert. Dies führt dazu, dass der in der nächsten Zeile eingerückte Code print("The value is 20")
ausgeführt wird. Andernfalls, also bei einer Evaluierung zu False
würde die nächste Zeile nicht ausgeführt, also gar nichts ausgegeben werden. Sowohl der Doppelpunkt hinter dem booleschen Ausdruck als auch das Einrücken der nächsten Zeile sind zwingend erforderlich. Ein fehlerhaftes Einrücken führt zu einer Fehlermeldung:
value = 20
if value == 20:
print("The value is 20")
print("Done!)
print("Done!")
^
IndentationError: unexpected indent
Es ist üblich, eine Zeile mit vier Leerzeichen einzurücken. Hier wurde die Zeile print("Done!")
um fünf Leerzeichen eingerückt, was einen IndentationError zur Folge hat.
Als nächstes wird das Beispiel um eine else
-Verzweigung erweitert:
value = 20
if value == 30:
print("The value is 20")
else:
print("The value is not 20")
Da value
hier nicht 20 ist, mithin zu False
evaluiert, wird jetzt der else
-Zweig ausgeführt. Die Ausführung des Programms führt also zur Ausgabe von „The value is not 20“.
Man kann auch mehrere boolesche Ausdrücke überprüfen lassen. Hierfür steht das Schlüsselwort elif
(eine Kurzform von „else if“) zur Verfügung.
value = 20
if value == 30:
print("The value is 20")
elif value == 40:
print("The value is not 40")
else:
print("The value is neither 20 nor 40")
Der Code nach dem Ausdruck, der zu True
evaluiert, wird ausgeführt.t. Alle anderen Code-Blöcke werden ignoriert. Die Ausführung des Programms führt also zur Ausgabe von „The value is neither 20 nor 40“. Freilich könnte man es nicht bei einem elif
-Zweig belassen, sondern noch weitere Zweige verwenden.
Vergleichsoperatoren
Neben dem Vergleichsoperator ==
können auch andere Operatoren verwendet werden. Nachfolgend eine Übersicht zu den Operatoren:
Operator | Bedeutung |
---|---|
== | ist gleich |
!= | ist nicht gleich |
> | größer als |
< | kleiner als |
>= | größer gleich |
<= | kleiner gleich |
Logische Operatoren
Des Weiteren stehen die logischen Operatoren and
und or
zur Verfügung. Im Falle von and
wird zu True
evaluiert, wenn beide booleschen Ausdrücke True
ergeben:
first_value = 30
if first_value > 10 and first_value < 100:
print("The value is between 10 and 100.")
# -> The value is between 10 and 100.
Im Falle von or
wird zu True
evaluiert, wenn zumindest einer der beiden Ausrücke zu True
evaluiert:
first_value = 30
second_value = 60
if first_value > 1 or second_value < 1:
print("At least one value is greater than 1.")
# -> At least one value is greater than 1.