- 1 Section
- 10 Lessons
- unbegrenzt
- Python Grundlagen10
- 1.1Python-Grundlagen: Installation, REPL, erstes Skript
- 1.2Variablen, Datentypen, Typumwandlung
- 1.3Kontrollstrukturen: if, elif, else
- 1.4Schleifen: for, while, range
- 1.5Listen, Tupel, Dictionaries, Sets
- 1.6Funktionen: def, Parameter, return
- 1.7Fehlerbehandlung: try-except-finally
- 1.8Strings: Methoden, Formatierung, f-Strings
- 1.9Dateien lesen und schreiben
- 1.10Praxisprojekt: Kleines Python-Programm von A bis Z
Schleifen: for, while, range
Schleifen wiederholen Code-Blöcke. Python hat – wie die meisten Sprachen – zwei Hauptformen: for und while. Aber die Python-Variante ist viel mächtiger und eleganter als z.B. in Java. Statt einer „klassischen for-Schleife mit Zähler" hat Python eine foreach-artige for-Schleife: du iterierst direkt über Listen, Strings, Tupel und alles andere was „durchlaufbar" ist.
Das Wort dafür: iterable (durchlaufbar). Eine Liste ist iterable. Ein String ist iterable (Zeichen für Zeichen). Eine Datei ist iterable (Zeile für Zeile). Und für „echte" Zähl-Schleifen gibt es range() – ein Werkzeug das eine Zahlen-Folge erzeugt.
1) Die for-Schleife: über Dinge iterieren
Eine Python-for-Schleife liest sich fast wie englisches Schreiben: „for each item in the collection, do something". Du brauchst keine Zähler-Variable und keinen Index – außer du brauchst ihn wirklich:
Was passiert: Python schaut sich an was rechts vom in steht, geht jeden Eintrag durch, und legt ihn in die Variable links davon. Das funktioniert mit jedem iterable – auch mit Strings (Zeichen für Zeichen) oder Tupeln und Dictionaries (Lektion 5).
2) range() – die Zahlenfolge-Maschine
Wenn du doch eine klassische Zähl-Schleife brauchst (z.B. „mache 10 Mal etwas"), nutzt du range(). Das ist eine Funktion die eine Zahlenfolge produziert. Sie kann mit 1, 2 oder 3 Argumenten aufgerufen werden:
range(n) = 0 bis n−1. range(a, b) = a bis b−1. range(a, b, schritt) = wie eben, aber mit Schritt-Größe (kann auch negativ sein für rückwärts!). Wichtig: der Endwert ist NIE enthalten. range(0, 5) liefert 0, 1, 2, 3, 4 – nicht 5. Das ist „half-open" und passt mathematisch zur Standard-Konvention. range selbst ist kein Array – es ist ein „Lazy"-Generator der die Werte erst on-demand produziert. Das spart Speicher bei range(1_000_000).3) Pythonic vs. nicht-pythonic Schleifen
Ein Anfänger-Reflex aus anderen Sprachen: „ich brauche einen Index also nutze ich range(len(liste))". In Python geht das eleganter. Hier ein paar typische Beispiele wie der gleiche Code in zwei Stilen aussieht:
for i in range(len(namen)):
print(namen[i])
for name in namen:
print(name)
print(i, namen[i])
print(i, name)
print(namen[i], alter[i])
print(name, a)
4) Live-Tracer für for und while
Um Schleifen wirklich zu verstehen, hilft es jeden Schritt einzeln zu betrachten. Wähle eine Variante und klick dich durch:
5) break und continue
Wie auch in anderen Sprachen gibt es zwei Sonder-Befehle für Schleifen-Steuerung:
break– verlässt die Schleife sofort. Nützlich z.B. wenn du in einer Liste etwas suchst und gefunden hast.continue– springt zum nächsten Durchlauf, überspringt den Rest des Schleifenkörpers.
6) for...else – ein Python-Eigengewächs
Python hat eine eigenartige Konstruktion: for-Schleifen können einen else-Block haben. Der wird ausgeführt wenn die Schleife normal zu Ende ging – also NICHT mit break abgebrochen wurde. Nützlich für Such-Schleifen:
Dieses Konstrukt ist umstritten – viele Python-Profis finden es verwirrend (denken: „else gehört doch zu if?!"). Du wirst es eher selten sehen, aber wenn du es siehst, weißt du jetzt was es bedeutet.
7) List Comprehensions: Schleifen als Ausdruck
Eine der coolsten Python-Features. Statt eine Schleife zu schreiben um eine neue Liste zu bauen, kannst du das in einer Zeile mit einer List Comprehension:
for n in range(1, 6):
quadrate.append(n ** 2)
# [1, 4, 9, 16, 25]
# [1, 4, 9, 16, 25]
for n in range(20):
if n % 2 == 0:
gerade.append(n)
[ausdruck for variable in iterable if bedingung]. Die Bedingung ist optional. Auch für Dictionaries gibt es das (Dict Comprehension: {k: v for k, v in ...}) und für Sets (Set Comprehension: {x for x in ...}). Comprehensions sind kompakt – aber wenn die Logik komplex wird, ist eine normale for-Schleife oft lesbarer. Faustregel: passt die Comprehension auf eine Zeile? Dann pythonic.Zusammenfassung
Python-Schleifen: for variable in iterable: – iteriert über Listen, Strings, Tupel, range, Datei-Zeilen. while bedingung: – läuft solange Bedingung True. Für Zahlfolgen range(start, stop, step) – stop nicht enthalten! Pythonic-Tools: enumerate() für (Index, Wert), zip() für parallel iterieren, reversed() für rückwärts. break verlässt Schleife, continue überspringt Rest. for-else: else läuft nur wenn kein break. List Comprehensions: [ausdruck for v in iterable if cond] als kompakte Alternative.
