Die if-Verzweigung in Python

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:

OperatorBedeutung
==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.

Weitere Kontrollstrukturen