Eine For-Schleife wiederholt einen Codeblock für jedes Element in einer Sequenz. Anders als eine While-Schleife — die läuft, bis sich eine Bedingung ändert — arbeitet eine For-Schleife eine Sammlung von Werten der Reihe nach ab und hört automatisch auf, wenn alle Elemente verarbeitet wurden. Das macht sie ideal, wenn du genau weißt, wie oft du etwas wiederholen möchtest.
Schleifen mit range()
Die eingebaute Funktion range() erzeugt eine Zahlenfolge und eignet sich perfekt für Zählschleifen:
for i in range(5):
print(i)
Ausgabe:
0
1
2
3
4
range(5) erzeugt die Zahlen 0, 1, 2, 3, 4 — fünf Zahlen beginnend bei null. Die Schleifenvariable i nimmt der Reihe nach jeden Wert an.
range() anpassen
range() akzeptiert bis zu drei Argumente:
| Aufruf | Erzeugt |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(2, 8) | 2, 3, 4, 5, 6, 7 |
range(0, 10, 2) | 0, 2, 4, 6, 8 |
range(10, 0, -1) | 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 |
# Rückwärtszählen von 5
for i in range(5, 0, -1):
print(i)
print("Start!")
Das dritte Argument von range() ist die Schrittweite — wie viel bei jedem Schritt addiert wird. Eine negative Schrittweite ermöglicht das Rückwärtszählen. range(start, stop, schritt) schließt den Stoppwert nie ein.
Über eine Liste iterieren
Eine For-Schleife kann direkt über die Elemente einer Liste laufen — kein range() nötig:
fruechte = ["Apfel", "Banane", "Kirsche"]
for frucht in fruechte:
print(frucht)
Ausgabe:
Apfel
Banane
Kirsche
Die Schleifenvariable frucht nimmt automatisch den Wert jedes Elements in der Reihenfolge an.
Über eine Zeichenkette iterieren
Zeichenketten sind ebenfalls Sequenzen, sodass du durch jeden Buchstaben iterieren kannst:
wort = "hallo"
for buchstabe in wort:
print(buchstabe)
Wähle einen aussagekräftigen Namen für deine Schleifenvariable. Wenn du über eine Liste von Schülern iterierst, nenne die Variable schueler, nicht i oder x. Dein Code wird dadurch viel leichter lesbar.
Ergebnisse aufaddieren
Eines der nützlichsten Schleifenmuster ist das schrittweise Aufbauen eines Ergebnisses:
zahlen = [4, 7, 2, 9, 1]
gesamt = 0
for zahl in zahlen:
gesamt += zahl
print(f"Summe: {gesamt}") # Summe: 23
break und continue
break— beendet die Schleife sofort.continue— überspringt den Rest des aktuellen Durchlaufs und geht zum nächsten.
for i in range(10):
if i == 6:
break # bei 6 komplett aufhören
if i % 2 == 0:
continue # gerade Zahlen überspringen
print(i)
# Gibt aus: 1 3 5
Übermäßiger Einsatz von break und continue kann Schleifen schwer nachvollziehbar machen. Verwende sie nur, wenn sie die Logik tatsächlich vereinfachen.
Übungsaufgaben
Was erzeugt range(1, 10, 3)? Liste alle Werte auf.
Antwort anzeigen
Schreibe eine For-Schleife, die das Quadrat jeder Zahl von 1 bis 5 ausgibt.