Stewdent.eu
▾

Verschachtelte Schleifen

Verschachtelte Schleifen sind Schleifen innerhalb von Schleifen. Sie ermöglichen die Verarbeitung von zweidimensionalen Daten wie Tabellen oder Gitter und sind ein wichtiges Muster in der Programmierung.

Zuletzt aktualisiert: 9. Februar 2026

★★★☆☆ Stufe 3computingprogrammingschleifenverschachteltiteration3 Min Lesezeit

Fehler melden

Eine verschachtelte Schleife ist eine Schleife, die sich innerhalb einer anderen Schleife befindet. Die innere Schleife wird für jeden einzelnen Durchlauf der äußeren Schleife vollständig ausgeführt. Das klingt kompliziert, ist aber ein sehr nützliches Muster, wenn du mit zweidimensionalen Daten arbeitest.

Grundstruktur

for aussen in range(3):
    for innen in range(4):
        print(f"Außen: {aussen}, Innen: {innen}")

Für jeden der 3 Durchläufe der äußeren Schleife läuft die innere Schleife 4 Mal. Das ergibt insgesamt 3 × 4 = 12 Ausgaben.

Multiplikationstabelle

Ein klassisches Beispiel ist das Erstellen einer Multiplikationstabelle:

for zeile in range(1, 6):
    for spalte in range(1, 6):
        ergebnis = zeile * spalte
        print(f"{ergebnis:4}", end="")   # 4 Zeichen Breite, kein Zeilenumbruch
    print()   # Zeile abschließen

Ausgabe:

   1   2   3   4   5
   2   4   6   8  10
   3   6   9  12  15
   4   8  12  16  20
   5  10  15  20  25
Hinweis

print(f"{wert:4}", end="") gibt den Wert in einem Feld von 4 Zeichen Breite aus und fügt keinen Zeilenumbruch am Ende hinzu. Das end="" überschreibt den Standard-Zeilenumbruch.

Muster mit Sternen

Verschachtelte Schleifen eignen sich auch hervorragend zum Zeichnen von Mustern:

# Dreieck aus Sternen
for zeile in range(1, 6):
    for stern in range(zeile):
        print("*", end="")
    print()   # neue Zeile

Ausgabe:

*
**
***
****
*****

Zweidimensionale Listen

Verschachtelte Schleifen werden häufig verwendet, um Tabellen (Listen von Listen) zu verarbeiten:

noten = [
    [1, 2, 3],   # Schüler 1
    [2, 1, 2],   # Schüler 2
    [3, 2, 1],   # Schüler 3
]

for schueler_index, schueler_noten in enumerate(noten):
    gesamt = 0
    for note in schueler_noten:
        gesamt += note
    durchschnitt = gesamt / len(schueler_noten)
    print(f"Schüler {schueler_index + 1}: Durchschnitt {durchschnitt:.1f}")
Tipp

Wähle aussagekräftige Namen für die Schleifenvariablen beider Ebenen. zeile und spalte, oder schueler und note machen den Code viel verständlicher als i und j.

Leistungsbedenken

Jede Ebene der Verschachtelung multipliziert die Anzahl der Operationen. Für n Elemente gilt:

SchachtelungstiefeOperationen
1 Schleifen
2 Schleifenn × n = n²
3 Schleifenn × n × n = n³
Warnung

Drei oder mehr verschachtelte Schleifen können bei großen Datenmengen sehr langsam werden. Wenn du dich dabei ertappst, viele Schleifen zu verschachteln, überlege, ob es einen eleganteren Ansatz gibt.

Übungsaufgaben

Wie viele Mal wird print() insgesamt aufgerufen in: for i in range(4): for j in range(3): print(i, j)

Antwort anzeigen
12 Mal. Die äußere Schleife läuft 4 Mal (i = 0, 1, 2, 3), und für jeden Durchlauf läuft die innere Schleife 3 Mal (j = 0, 1, 2). 4 × 3 = 12 Aufrufe insgesamt.

Was gibt dieser Code aus? for i in range(3): for j in range(i+1): print('*', end='') / print()

Antwort anzeigen
Zeile 1: * (1 Stern), Zeile 2: ** (2 Sterne), Zeile 3: *** (3 Sterne). Die innere Schleife läuft i+1 Mal, also 1, 2 und 3 Mal für i=0, 1 und 2.