Zum Hauptinhalt springen

Schleifen verschachteln

Warum brauchen wir das?

Manchmal brauchst du Wiederholung in Wiederholung:

  • Einmaleins-Tabelle (jede Reihe × jeder Faktor)
  • Gitter / Koordinaten
  • kleine ASCII-Muster
  • „für jede Klasse, für jeden Schüler …“

Eine Schleife steuert die große Struktur, die innere die Details.

Definition: verschachtelte Schleifen

Definition – verschachtelte Schleifen:
Verschachtelte Schleifen bedeuten: Eine Schleife liegt im Block einer anderen.
Die innere Schleife läuft für jeden Durchlauf der äußeren komplett durch.

aeusserer Durchlauf 1
innerer 1, innerer 2, innerer 3
aeusserer Durchlauf 2
innerer 1, innerer 2, innerer 3
...

Gesamt innere Durchläufe ≈ äußere × innere (bei festen range-Größen).

Mini-Koordinaten

for zeile in range(1, 4):
for spalte in range(1, 4):
print(f"({zeile},{spalte})", end=" ")
print() # Zeilenumbruch nach jeder Zeile

Ausgabe:

(1,1) (1,2) (1,3)
(2,1) (2,2) (2,3)
(3,1) (3,2) (3,3)

end=" " verhindert den automatischen Zeilenumbruch von print – fortgeschritten, hier nützlich für Tabellen in einer Zeile.

Einmaleins-Vorgeschmack

for a in range(1, 4):
for b in range(1, 4):
print(f"{a}*{b}={a*b}", end=" ")
print()

Äußere Schleife = Zeile (erste Zahl).
Innere Schleife = Spalte (zweite Zahl).

Sternmuster – oft ohne Verschachtelung

for zeile in range(1, 6):
print("*" * zeile)
*
**
***
****
*****

Hier reicht oft eine Schleife. Verschachtelung brauchst du, wenn zwei Richtungen oder zwei unabhängige Zähler nötig sind.

Rate mal!

for a in range(2):
for b in range(3):
print("x")

Wie oft x?

Aufloesung

6-mal (2 × 3).

Neue Wörter

aeusserere Schleifeouter loop

Die aeussere for/while-Schleife, die die grosse Struktur steuert.

innere Schleifeinner loop

Die Schleife im Block der aeusseren – laeuft pro aeusserem Durchlauf komplett.

Was passiert im Computer?

  1. Äußerer Zähler startet (erster Wert).
  2. Innere Schleife läuft komplett durch.
  3. Äußerer Zähler nimmt den nächsten Wert.
  4. Innere Schleife startet wieder von vorn.
  5. Bis die äußere Sequenz zu Ende ist.

Mentales Bild: Für jede Schublade (außen) öffnest du alle Fächer (innen).

Häufige Irrtümer

IrrtumRichtig
innere und äußere laufen „gleichzeitig“nein – innere pro äußerem Schritt komplett
Einrückung egalEinrückung definiert die Verschachtelung
immer verschachtelnoft reicht eine Schleife
2×3 range = 5 Durchläufe2×3 = 6

Probiere es selbst

Experiment 1 – zählen

count = 0
for a in range(2):
for b in range(4):
count = count + 1
print(count) # 8

Experiment 2 – Gitter 2×2

for z in range(1, 3):
for s in range(1, 3):
print(f"[{z},{s}]", end=" ")
print()

Experiment 3 – Einmaleins 1..5

Äußere und innere range(1, 6) – jede Zelle a*b.

Experiment 4 – absichtlich flach

Baue dasselbe Sternmuster ohne innere Schleife mit "*" * zeile.

Fehlerdetektiv

for zeile in range(1, 4):
for spalte in range(1, 4):
print(f"({zeile},{spalte})")
Loesung anzeigen

Jeder print macht eine neue Zeile. Für eine Zeile pro äußerem Durchlauf:

for zeile in range(1, 4):
for spalte in range(1, 4):
print(f"({zeile},{spalte})", end=" ")
print()

Übungen

Level 1 – Entdecken

Wie oft wird print("hi") ausgeführt?

for i in range(3):
for j in range(2):
print("hi")
Loesung

6-mal.

Level 2 – Anwenden

Drucke alle Paare (i, j) für i,j in 1..3.

Loesung
for i in range(1, 4):
for j in range(1, 4):
print(f"({i},{j})")

Level 3 – Erweitern

Mini-Einmaleins 1..4 als Tabelle mit end=" " und print() pro Zeile.

Loesung
for a in range(1, 5):
for b in range(1, 5):
print(f"{a*b:2}", end=" ")
print()

(:2 ist optional – formatierte Breite; auch ohne ok.)

Mini-Challenge

Erkläre: Warum multipliziert man äußere × innere Durchläufe?
Baue ein 3×3-Sternquadrat (drei Zeilen mit je drei Sternen).

Zusammenfassung

  • Verschachtelung = Schleife im Block einer anderen.
  • Innere läuft pro äußerem Schritt komplett.
  • Durchläufe oft äußere × innere.
  • Einrückung zeigt die Ebenen.
  • Tabellen und Gitter sind typische Einsatzorte.
  • Nicht immer nötig – erst einfach denken.

Mini-Quiz

Mini-Quizfor range(2) aussen und range(3) innen – wie oft innen?
  1. Was ist die äußere Schleife?
  2. Wann startet die innere neu?
  3. Braucht man für *×n immer Verschachtelung?
Loesungen
  1. Die große Struktur / äußerer Zähler.
  2. Bei jedem neuen äußeren Durchlauf.
  3. Nein – oft reicht "*" * n.

Verschachtelung sitzt! Mini-Projekt: Einmaleins-Trainer.