2.3.2. Abzweigungen#

Abzweigungen ermöglichen eine Fallunterscheidung, bei der verschiedene Teile des Skripts ausgeführt werden.

Zum Beispiel im Maximum-Algorithmus wird entschieden, ob der aktuelle Iterationswert größer ist als eine Variable. Falls nicht, wird die nächste Iteration durchgeführt, falls ja, wird der Wert der Variablen angepasst.

Definition#

In Python werden Abzweigungen mit dem if Schlüsselwort eingeleitet. Dieses wird von der Abzweigbedingung gefolgt und mit einem Doppelpunkt : abgeschlossen. Falls die Abzweigbedingung wahr ist, wird der eingerückte Anweisungsblock ausgeführt.

if Bedingung:
    Anweisungsblock

Es ist auch möglich einen alternativen Anweisungsblock zu definieren, welcher ausgeführt wird, wenn die Bedingung falsch ist. Dies wird mit dem else Schlüsselwort umgesetzt.

if Bedingung:
    # Bedingung ist wahr
    Anweisungsblock
else:
    # Bedingung ist falsch
    Anweisungsblock

Folgende Beispiele verdeutlichen den Einsatz der Abzweigung.

# Beispiel 1: Zahl kleiner als ein Schwellwert

a = 7
if a < 10:
    print( 'Die Zahl', a, 'ist kleiner als 10.')
Die Zahl 7 ist kleiner als 10.
# Beispiel 2: Zahl kleiner als ein Schwellwert mit alternativer Ausgabe

a = 13
if a < 10:
    print( 'Die Zahl', a, 'ist kleiner als 10.')
else:
    print( 'Die Zahl', a, 'ist nicht kleiner als 10.')
Die Zahl 13 ist nicht kleiner als 10.
# Beispiel 3: Zahl im Wertebereich zwischen 10 und 20

a = 1
if a < 20 and a > 10:
    print( 'Die Zahl', a, 'liegt zwischen 10 und 20.')
else:
    print( 'Die Zahl', a, 'liegt nicht zwischen 10 und 20.')
Die Zahl 1 liegt nicht zwischen 10 und 20.

Verschachtelte Abzweigungen#

Wie Schleifen, können auch Abzweigungen verschachtelt werden. Dazu werden folgende Abzweigungen in die Anweisungsblöcke der übergeordneten Abfragen gesetzt.

# Beispiel 4: Zahl im Wertebereich zwischen 10 und 20 mit verschachtelten Abzweigungen

a = 12
if a > 10:
    print( 'Die Zahl', a, 'ist größer als 10.' )
    
    if a < 20:
        print( 'Die Zahl', a, 'ist kleiner als 20.' )
        print( 'Damit liegt die Zahl zwischen 10 und 20.')
    else:
        print( 'Die Zahl', a, 'ist größer als 20 und liegt nicht im gesuchten Wertebereich.' )
else:
        print( 'Die Zahl', a, 'ist kleiner als 10 und liegt nicht im gesuchten Wertebereich.' )
Die Zahl 12 ist größer als 10.
Die Zahl 12 ist kleiner als 20.
Damit liegt die Zahl zwischen 10 und 20.

Kombination von Schleifen und Abzweigungen#

Wie alle Anweisungen, können auch die beiden Grundelemente Schleifen und Abzweigungen kombiniert werden. Dazu werden sie in die jeweiligen Ausführungsblöcke integriert.

# Beispiel 5: Prüfe ob Elemente einer Liste gerade Zahlen sind.

# Defniere eine Liste
l1 = [-4, 5, 11, 98, 2, -35]

# Schleife über alle Listenelemente
for el in l1:
    print( "Prüfe das Element", el)
    # Prüfe ob Element gerade ist
    if el % 2 == 0:
        print("  -> gerade")
    else:
        print("  -> ungerade")
        
Prüfe das Element -4
  -> gerade
Prüfe das Element 5
  -> ungerade
Prüfe das Element 11
  -> ungerade
Prüfe das Element 98
  -> gerade
Prüfe das Element 2
  -> gerade
Prüfe das Element -35
  -> ungerade
# Beispiel 6: Ausgabe der einzelnen Elemente in verschiedenen Richtungen

# Setze Variable zum Steuern der Richtung
vorwaerts = False

# Beispielliste
l2 = [11, 45, "Feuer", [6,7], -3.456]

if vorwaerts:
    for el in l2:
        print( "Element: ", el)
        
else:
    for i in range(len(l2)-1, -1, -1):
        print( "Element: ", l2[i])
Element:  -3.456
Element:  [6, 7]
Element:  Feuer
Element:  45
Element:  11