Python - Verschachtelte Schleifen

Hallo, aufstrebende Programmierer! Heute tauchen wir in die faszinierende Welt der verschachtelten Schleifen in Python ein. Als euer freundlicher Nachbar und Computerlehrer bin ich begeistert, euch auf dieser Reise zu führen. Glaubt mir, am Ende dieser Lektion werdet ihr wie ein Profi schleifen!

Python - Nested Loops

Was sind Verschachtelte Schleifen?

Bevor wir in die Tiefe springen, beginnen wir mit den Grundlagen. Stellt euch vor, ihr organisiert euren Kleiderschrank. Ihr geht durch jeden Regalbrett (das ist eine Schleife), und für jedes Regalbrett sortiert ihr alle Gegenstände darauf (das ist eine weitere Schleife innerhalb der ersten). Das ist im Grunde genommen, was verschachtelte Schleifen in der Programmierung sind – Schleifen innerhalb von Schleifen!

Python Verschachtelte for-Schleife

Beginnen wir mit der for-Schleife, die wie ein verlässlicher alter Freund in der Python-Welt ist.

Grundlegende Struktur

Hier ist die allgemeine Struktur einer verschachtelten for-Schleife:

for äußere_variable in äußere_Sequence:
# Äußere Schleifenkörper
for innere_variable in innere_Sequence:
# Innerer Schleifenkörper

Einfaches Beispiel: Multiplikations-Tabelle

Erstellen wir eine einfache Multiplikations-Tabelle, um dies besser zu verstehen:

for i in range(1, 6):
for j in range(1, 6):
print(f"{i} x {j} = {i*j}", end="\t")
print()  # Gehe zur nächsten Zeile nach jeder Reihe

Dieser Code wird ausgeben:

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

Lassen Sie uns das aufbrechen:

  1. Die äußere Schleife (for i in range(1, 6)) läuft 5 Mal, represents the Reihen.
  2. Für jede Iteration der äußeren Schleife läuft die innere Schleife (for j in range(1, 6)) 5 Mal, represents the Spalten.
  3. Wir geben jedes Multiplikationsresultat aus, verwenden end="\t", um einen Tabulator anstatt einer neuen Zeile hinzuzufügen.
  4. Nach jeder Reihe (äußere Schleifeniteration) geben wir eine leere Zeile aus, um zur nächsten Reihe zu wechseln.

Echtes-Welt-Beispiel: Sitzordnung

Stellt euch vor, ihr seid ein Lehrer (wie ich!) und organisiert Sitze für einen Klassenraum. Erstellen wir eine Sitzordnung:

students = ["Alice", "Bob", "Charlie", "David", "Eve"]
rows = 3
seats_per_row = 2

seat_number = 0
for row in range(1, rows + 1):
print(f"Reihe {row}:")
for seat in range(1, seats_per_row + 1):
if seat_number < len(students):
print(f"  Sitz {seat}: {students[seat_number]}")
seat_number += 1
else:
print(f"  Sitz {seat}: Leer")
print()  # Leere Zeile zwischen den Reihen

Dies wird ausgeben:

Reihe 1:
Sitz 1: Alice
Sitz 2: Bob

Reihe 2:
Sitz 1: Charlie
Sitz 2: David

Reihe 3:
Sitz 1: Eve
Sitz 2: Leer

In diesem Beispiel:

  1. Die äußere Schleife iteriert durch jede Reihe.
  2. Die innere Schleife weist Schülern Sitze in jeder Reihe zu.
  3. Wir verwenden eine seat_number-Variable, um zu überprüfen, welcher Schüler als nächstes zugewiesen wird.
  4. Wenn wir keine Schüler mehr haben, markieren wir die verbleibenden Sitze als "Leer".

Python Verschachtelte while-Schleife

Nun treffen wir den Cousin der while-Schleife – die verschachtelte while-Schleife. Es ist wie ein wachsender Wächter, der eine Bedingung überprüft.

Grundlegende Struktur

So sieht eine verschachtelte while-Schleife typischerweise aus:

while äußere_Bedingung:
# Äußerer Schleifenkörper
while innere_Bedingung:
# Innerer Schleifenkörper

Beispiel: Zahlensäule

Erstellen wir eine Zahlensäule, um verschachtelte while-Schleifen in Aktion zu sehen:

row = 1
while row <= 5:
col = 1
while col <= row:
print(col, end=" ")
col += 1
print()  # Gehe zur nächsten Zeile
row += 1

Dies wird ausgeben:

1
1 2
1 2 3
1 2 3 4
1 2 3 4 5

Lassen Sie uns das aufbrechen:

  1. Die äußere while-Schleife steuert die Anzahl der Reihen (1 bis 5).
  2. Für jede Reihe gibt die innere while-Schleife Zahlen von 1 bis zur aktuellen Reihe aus.
  3. Wir erhöhen col innerhalb der inneren Schleife und row innerhalb der äußeren Schleife.

Echtes-Welt-Beispiel: Inventarprüfung

Stellt euch vor, ihr seid ein kleiner Ladenbesitzer. Ihr müsst euer Inventar regelmäßig überprüfen. Simulieren wir dies mit verschachtelten while-Schleifen:

inventory = {
"Äpfel": 50,
"Bananen": 30,
"Orangen": 40
}

days = 1
while days <= 3:  # Überprüfen für 3 Tage
print(f"Tag {days} Inventarprüfung:")
for fruit, quantity in inventory.items():
while quantity > 0:
print(f"Überprüfe {fruit}...")
quantity -= 10  # Simulieren des Verkaufs von 10 Einheiten pro Überprüfung
if quantity <= 20:
print(f"Niedriger Bestandsalarm für {fruit}! Nur {quantity} übrig.")
break  # Stoppe die Überprüfung dieses Obstes, wenn der Bestand niedrig ist
inventory[fruit] = quantity  # Aktualisiere das Inventar
print(f"Ende des Tages {days} Inventar: {inventory}\n")
days += 1

Dies wird etwas wie folgt ausgeben:

Tag 1 Inventarprüfung:
Überprüfe Äpfel...
Überprüfe Äpfel...
Überprüfe Äpfel...
Niedriger Bestandsalarm für Äpfel! Nur 20 übrig.
Überprüfe Bananen...
Niedriger Bestandsalarm für Bananen! Nur 20 übrig.
Überprüfe Orangen...
Überprüfe Orangen...
Niedriger Bestandsalarm für Orangen! Nur 20 übrig.
Ende des Tages 1 Inventar: {'Äpfel': 20, 'Bananen': 20, 'Orangen': 20}

Tag 2 Inventarprüfung:
Überprüfe Äpfel...
Niedriger Bestandsalarm für Äpfel! Nur 10 übrig.
Überprüfe Bananen...
Niedriger Bestandsalarm für Bananen! Nur 10 übrig.
Überprüfe Orangen...
Niedriger Bestandsalarm für Orangen! Nur 10 übrig.
Ende des Tages 2 Inventar: {'Äpfel': 10, 'Bananen': 10, 'Orangen': 10}

Tag 3 Inventarprüfung:
Überprüfe Äpfel...
Niedriger Bestandsalarm für Äpfel! Nur 0 übrig.
Überprüfe Bananen...
Niedriger Bestandsalarm für Bananen! Nur 0 übrig.
Überprüfe Orangen...
Niedriger Bestandsalarm für Orangen! Nur 0 übrig.
Ende des Tages 3 Inventar: {'Äpfel': 0, 'Bananen': 0, 'Orangen': 0}

In diesem Beispiel:

  1. Die äußere while-Schleife simuliert die Überprüfung des Inventars für 3 Tage.
  2. Wir verwenden eine for-Schleife, um durch jedes Obst im Inventar zu iterieren.
  3. Die innere while-Schleife simuliert die Überprüfung und den Verkauf jedes Obstes, bis der Bestand niedrig oder ausgelassen ist.
  4. Wir verwenden break, um die Überprüfung eines Obstes zu stoppen, wenn dessen Menge auf 20 oder weniger sinkt.

Fazit

Herzlichen Glückwunsch! Ihr habt gerade die Kunst der verschachtelten Schleifen in Python gemeistert. Denkt daran, verschachtelte Schleifen sind kraftvolle Werkzeuge, aber verwendet sie weise. Sie können euren Code langsamer laufen lassen, wenn sie nicht effizient verwendet werden.

Wie bei allen Programmierkonzepten macht Übung den Meister. Versucht, eure eigenen verschachtelten Schleifen-Szenarien zu erstellen – vielleicht eine Schachbrett-Setup oder eine wöchentliche Schulplan. Die Möglichkeiten sind endlos!

K codiert, k lernet und vor allem habt Spaß dabei! Bis zum nächsten Mal, das ist euer freundlicher Nachbar und Computerlehrer. Fröhliches Schleifen!

Credits: Image by storyset