Verschachtelte Schleifen
Eine Schleife kann eine andere Schleife enthalten. Das nennt man eine verschachtelte Schleife. In jeder Iteration der äußeren Schleife läuft die innere Schleife komplett durch. Listen wir jedes T-Shirt auf, das ein Geschäft verkauft, in jeder Größe und jeder Farbe:
groessen = ["S", "M"]
farben = ["rot", "blau", "schwarz"]
for groesse in groessen:
for farbe in farben:
print(groesse, farbe)Das gibt Folgendes aus:
S rot
S blau
S schwarz
M rot
M blau
M schwarzDie äußere Schleife nimmt "S", und die innere geht alle drei Farben durch. Erst dann nimmt die äußere Schleife "M", und die innere geht wieder alle Farben durch. Der innere Block wird 2 × 3 = 6-mal ausgeführt. Die innere Schleife ist in der äußeren eingerückt, und ihr eigener Block ist noch einmal eingerückt. Gib den Variablen der beiden Schleifen verschiedene Namen (hier groesse und farbe), damit du weißt, welche welche ist.
Verschachtelte Schleifen sind auch praktisch, um Tabellen auszugeben. Bisher hat jedes print() seine Zeile beendet. Mit end=" " endet es stattdessen mit einem Leerzeichen, und das nächste print() macht in derselben Zeile weiter. Ein leeres print() beendet dann die Zeile. Das gibt einen Teil eines Einmaleins aus, eine Zeile für jede Zahl:
for zeile in range(1, 4):
for spalte in range(1, 6):
print(zeile * spalte, end=" ")
print()1 2 3 4 5
2 4 6 8 10
3 6 9 12 15 Sieh dir an, wo das leere print() steht: Es ist nur einmal eingerückt, gehört also zur äußeren Schleife. Es wird jedes Mal ausgeführt, wenn die innere Schleife eine ganze Zeile ausgegeben hat.
So schreibst du es:
Anweisungen
- 1
Ein Reisebüro bietet für jede Stadt in
staedteeine Reise mit jeder Aktivität inaktivitaetenan. Schreibe eine Schleife überstaedteund darin verschachtelt eine Schleife überaktivitaetenund gib jedes Paar mitprint(stadt, aktivitaet)aus. Die Ausgabe beginnt mitHamburg Tennis,Hamburg Shoppen,Hamburg Sightseeing,Paris Tennis… - 2
Gib darunter ein kleines Einmaleins von 1 bis 5 aus: fünf Zeilen mit je fünf Zahlen, durch Leerzeichen getrennt. Die erste Zeile ist
1 2 3 4 5, die zweite2 4 6 8 10und die letzte5 10 15 20 25. Verwende zwei verschachtelte Schleifen mitrange(),print(..., end=" ")und ein leeresprint().