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
Die aeussere for/while-Schleife, die die grosse Struktur steuert.
Die Schleife im Block der aeusseren – laeuft pro aeusserem Durchlauf komplett.
Was passiert im Computer?
- Äußerer Zähler startet (erster Wert).
- Innere Schleife läuft komplett durch.
- Äußerer Zähler nimmt den nächsten Wert.
- Innere Schleife startet wieder von vorn.
- 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
| Irrtum | Richtig |
|---|---|
| innere und äußere laufen „gleichzeitig“ | nein – innere pro äußerem Schritt komplett |
| Einrückung egal | Einrückung definiert die Verschachtelung |
| immer verschachteln | oft reicht eine Schleife |
| 2×3 range = 5 Durchläufe | 2×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
- Was ist die äußere Schleife?
- Wann startet die innere neu?
- Braucht man für
*×n immer Verschachtelung?
Loesungen
- Die große Struktur / äußerer Zähler.
- Bei jedem neuen äußeren Durchlauf.
- Nein – oft reicht
"*" * n.
Verschachtelung sitzt! Mini-Projekt: Einmaleins-Trainer.