Python for-Schleifen iterieren über eine gegebene Sequenz.
Mit der for-Schleife können wir eine Reihe von Anweisungen ausführen, einmal für jedes Element in einer Liste, einem Tupel, einer Menge usw.
primzahlen = [1, 2, 3, 5, 7]
for primzahl in primzahlen:
print(primzahl)
Die Funktion range()
For-Schleifen können mit der Funktion "range()" über eine Folge von Zahlen iterieren. Beachte, dass die Bereichsfunktion nullbasiert ist.
# Gibt die Zahlen 0,1,2,3,4 aus
print("Gibt die Zahlen 0,1,2,3,4 aus")
for x in range(5):
print(x)
# Gibt die Zahlen 3,4,5 aus
print("Gibt die Zahlen 3,4,5 aus")
for x in range(3, 6):
print(x)
# Gibt die Zahlen 3,5,7 aus
print("Gibt die Zahlen 3,5,7 aus")
for x in range(3, 8, 2):
print(x)
Schleifen über eine Zeichenkette
Auch Strings sind iterierbare Objekte, da sie eine Folge von Zeichen enthalten:
# Dies läuft in einer Schleife und druckt jeden Buchstaben des Wortes Python
for x in "Python":
print(x)
Die Break-Anweisung
Die Anweisung break
kann die Schleife beenden, bevor sie durch alle Elemente gelaufen ist:
# dieses Beispiel verlässt die Schleife, wenn x "Mark" ist
personen = ["Jeff", "Mark", "Ivan"]
for x in personen:
print(x)
if x == "Mark":
break
Die continue-Anweisung
Die Anweisung continue
kann die aktuelle Iteration der Schleife abbrechen und mit der nächsten fortfahren:
# Dies wird nicht "Mark" ausgeben
personen = ["Jeff", "Mark", "Ivan"]
for x in personen:
if x == "Mark":
continue
print(x)
else in For-Schleife
Das Schlüsselwort else
in einer for-Schleife gibt einen Codeblock an, der ausgeführt werden soll, wenn die Schleife beendet ist:
# dieses Beispiel verlässt die Schleife, wenn x "Mark" ist
personen = ["Jeff", "Mark", "Ivan"]
for x in personen:
print(x)
else:
print("Alle Personen ausgegeben.")
# wenn ein Break die Schleife unterbricht, wird der else-Block nicht ausgeführt.
personen = ["Jeff", "Mark", "Ivan"]
for x in personen:
print(x)
if x == "Mark":
break
else:
print("Alle Personen ausgegeben.")
Verschachtelte Schleifen
Eine verschachtelte Schleife ist eine Schleife innerhalb einer Schleife. Die "innere Schleife" wird bei jeder Iteration der "äußeren Schleife" ein Mal ausgeführt:
farbe = ["rot", "schwarz", "weiß", "gelb"]
autos = ["Volkswagen", "Ford", "Nissan"]
for x in farbe:
for y in autos:
print(x, y)
Die pass Anweisung
for-Schleifen können nicht leer sein, aber wenn du aus einem bestimmten Grund eine for-Schleife ohne Inhalt hast, füge die pass-Anweisung ein, um einen Fehler zu vermeiden.
for x in [0, 1, 2, 3, 4, 5]:
pass
Übung
Gib mit der for-Schleife alle geraden Zahlen aus der Zahlenliste in der gleichen Reihenfolge aus, in der sie empfangen werden. Gib keine Zahlen aus, die in der Reihenfolge nach 237 kommen.
zahlen = [
951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
743, 527
]
# dein Code erscheint hier
zahlen = [
951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
743, 527
]
for zahl in zahlen:
if zahl == 237:
break
if zahl % 2 == 1:
continue
print(zahl)
test_object('zahlen', incorrect_msg="Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("402",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("984",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("360",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("408",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("980",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("544",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("390",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("984",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("592",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("236",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("942",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("386",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("462",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("418",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("344",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("236",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("566",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("978",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("328",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("162",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("758",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
test_output_contains("918",no_output_msg= "Vergiss nicht, `zahlen` auf den richtigen Wert zu ändern, wie in der Anleitung angegeben.")
success_msg("Hervorragend!")