In älteren Blogbeiträgen bin ich sowohl auf die for-Schleife als auch auf if-else eingegangen. Darüber hinaus existiert in Python auch eine for-else-Schleife. Das es so eine Schleife gibt, dürfte zunächst als ungewöhnlich erscheinen, schließlich wird in C, C++ oder Java kein „else“ nach einer Schleife verwendet.
Betrachten wir ein Beispiel, um uns mit der for-else-Schleife vertraut zu machen:
german_towns = ['Braunschweig', 'Erfurt', 'Magdeburg']
for i in german_towns:
if i == 'Lyon':
print(f"{i} is a town in germany.")
break
else:
print("Not found Lyon!")Die Liste towns enthält keine Stadt mit dem Namen Lyon, was zur folge hat, dass break nicht ausgeführt wird. Stattdessen wird „Not found Lyon!“ ausgegeben, mithin der else-Zweig ausgeführt.
Wird der Code wie folgt geändert, führt dies hingegen zur Ausgabe von „Erfurt is a town in germany.“.
german_towns = ['Braunschweig', 'Erfurt', 'Magdeburg']
for i in german_towns:
if i == 'Erfurt':
print(f"{i} is a town in germany.")
break
else:
print("Not found Lyon!")In diesem Fall kommt es nämlich zum break, womit der else-Zweig nicht mehr ausgeführt wird.
Wie den Beispielen entnommen werden kann, ist die for-else-Schleife leicht zu verstehen. Man erhält dadurch eine elegante Möglichkeit der Code-Ausführung — also der Ausführung des else-Zweigs — für den Fall, dass ein Element nicht vorhanden ist. Ohne Vorhandensein einer for-else-Schleife müsste dies beispielsweise über eine Variable, der ein boolescher Wert zugewiesen wird (True oder False), realisiert werden:
german_towns = ['Braunschweig', 'Erfurt', 'Magdeburg']
temp = False
for i in german_towns:
if i == 'Lyon':
print(f"{i} is a town in germany.")
temp = True
break
if temp is False:
print("Not found Lyon!")