Python · Klasse 8 · Block 3 von 4

Schleifen

Bisher musstest du jede Wiederholung einzeln aufschreiben. Mit for und while übernimmt Python die Wiederholung — egal ob die Anzahl von Anfang an feststeht oder sich erst während des Programms ergibt.

Alle Codebeispiele laufen direkt im Browser. Mit 📋 Kopieren kannst du den Code in Thonny einfügen und dort ausführen.

Thema 01

Die for-Schleife

Manchmal soll eine Berechnung mehrfach wiederholt werden — und wie oft, steckt in einer Variablen. Wiederholter print()-Code kann sich dieser Variablen nicht automatisch anpassen.

Mit for i in range(start, stop) wiederholst du Code für jeden Wert von start bis stop − 1. Die Variable i nimmt dabei automatisch den nächsten Wert an.

Ohne Schleife
💡 Setze anzahl auf 8 und führe den Code erneut aus — was ändert sich? Nichts, denn der Code oben kennt anzahl gar nicht wirklich.
Fertiges Beispiel — for-Schleife
💡 Ändere anzahl auf 8 oder 20 — die Ausgabe passt sich automatisch an, ohne dass du die Schleife anfasst.
Leicht
Fülle die Lücke, sodass die Zahlen 1 bis 6 ausgegeben werden.
Mittel
Die Variable anzahl ist bereits gegeben (10). Gib mit einer for-Schleife die 3er-Reihe aus — also alle Zahlen von 1 bis anzahl, jeweils mit 3 multipliziert.
Anspruchsvoll
Die Variable anzahl ist bereits gegeben (8). Gib mit einer for-Schleife nur die Zahlen von 1 bis anzahl aus, die durch 3 teilbar sind (nutze den %-Operator aus Block 1).
Thema 02

range()-Varianten

range() kann mehr als nur bei 0 starten und in 1er-Schritten hochzählen. Mit zusätzlichen Parametern legst du Start, Ende und Schrittweite selbst fest.

range(start, stop, step) — mit drei Parametern bestimmst du genau, wo die Zählung beginnt, wo sie endet (ausschließlich) und in welchen Schritten sie läuft. Ein negativer step zählt rückwärts.

Ohne Schrittweite
💡 Die Ausgabe läuft aufsteigend von 0 bis 9. Wie bekommst du daraus einen Countdown von 10 bis 1?
Fertiges Beispiel — range() mit Schrittweite
💡 range(10, 0, -1) zählt von 10 bis 1 (0 wird nicht mehr erreicht) — ändere die Werte und beobachte den Effekt.
Leicht
Fülle die Lücke, sodass die Zahlen 3 bis 7 ausgegeben werden (7 eingeschlossen).
Mittel
Schreibe eine for-Schleife, die alle geraden Zahlen von 2 bis 20 ausgibt (Schrittweite 2).
Anspruchsvoll
Die Variable start ist bereits gegeben (7). Zähle mit einer for-Schleife rückwärts von start bis 1 und gib danach "Los!" aus.
Thema 03

Akkumulator-Muster

Manchmal soll eine Schleife nicht nur ausgeben, sondern über alle Durchläufe hinweg etwas zusammenrechnen — zum Beispiel eine Summe.

Eine Variable wie summe startet vor der Schleife bei 0 und wird in jedem Durchlauf erhöht: summe = summe + i * i. Dieses Muster heißt Akkumulator.

Ohne Schleife
💡 Setze anzahl auf 12 — der Ausdruck oben ändert sich dadurch nicht von selbst.
Fertiges Beispiel — Akkumulator
💡 Ändere anzahl — die Summe passt sich automatisch an, ohne dass du die Schleife anfasst.
Leicht
Fülle die Lücke, sodass alle Zahlen von 1 bis 5 aufsummiert werden.
Mittel
Berechne mit einem Akkumulator das Produkt aller Zahlen von 1 bis 5 (die Fakultät). Starte produkt mit 1, nicht mit 0.
Anspruchsvoll
Die Variable anzahl ist bereits gegeben (6). Berechne mit einem Akkumulator die Summe der ersten anzahl Zahlen der 4er-Reihe (4, 8, 12, …).
Thema 04

Die while-Schleife

Bei for kennst du die Anzahl der Durchläufe immer im Voraus — auch wenn sie in einer Variablen steckt. Manchmal ist aber genau diese Anzahl das, was du suchst.

Eine while-Schleife wiederholt sich, solange eine Bedingung True ist. Die Bedingung wird vor jedem Durchlauf neu geprüft — verändert sich nichts, läuft die Schleife endlos.

Ohne Schleife
💡 Wie oft muss man verdoppeln, bis zahl über 1000 liegt? Mit for bräuchte man range(?) — aber genau diese Anzahl kennst du hier nicht im Voraus.
Fertiges Beispiel — while-Schleife
💡 Ändere die Grenze 1000 — die Schleife läuft automatisch so oft, wie nötig ist.
Leicht
Fülle die Lücke, sodass die Schleife läuft, solange zahl kleiner als 50 ist.
Mittel
Ein Konto hat einen Kontostand von 500 (bereits gegeben). Jeden Monat werden 40 abgehoben. Zähle mit einer while-Schleife und der Variablen monate, nach wie vielen Monaten der Kontostand unter 100 fällt, und gib monate aus.
Anspruchsvoll
Die Variable wert startet bei 2 (bereits gegeben) und wird in jedem Schritt mit sich selbst multipliziert (wert = wert * wert). Zähle mit einer while-Schleife und der Variablen anzahl, wie oft das möglich ist, bevor wert über 100000 liegt. Gib am Ende anzahl und wert aus.
Thema 05

Verschachtelte Schleifen

Eine Schleife kann eine weitere Schleife enthalten. Die innere Schleife läuft dabei bei jedem Durchlauf der äußeren komplett von vorn.

Fertiges Beispiel — Verschachtelte Schleifen
💡 Für jeden Tag läuft die innere Schleife komplett durch alle Blöcke — ohne die innere Schleife würdest du nie alle 12 Kombinationen sehen.
Anspruchsvoll
Zwei Würfel werden geworfen, jeder mit Augenzahlen von 1 bis 6. Zähle mit zwei verschachtelten for-Schleifen und einem Akkumulator anzahl (bereits mit 0 gegeben), bei wie vielen der 36 möglichen Kombinationen die Augensumme genau 7 ergibt. Gib am Ende "Treffer:", anzahl aus.
🏆 Abschlussprojekt

Kinoplan mit VIP-Plätzen

Kombiniere alles aus diesem Block: äußere und innere for-Schleife, if/elif/else aus Block 2, den Akkumulator und str() aus Block 1.

Der Kinosaal

Ein kleiner Kinosaal hat anzahl_reihen (4) Reihen mit je sitze_pro_reihe (8) Sitzen. Die Reihen heißen A (Reihe 1), B (Reihe 2), C (Reihe 3) und D (Reihe 4). Normale Plätze kosten preis_normal (8 Euro), VIP-Plätze preis_vip (10 Euro). VIP-Plätze sind die Sitze 2 bis 6 in Reihe C und Reihe D.

Teil A · Anspruchsvoll
Gib den Kinoplan ohne VIP-Markierung aus — für jede Reihe eine Zeile mit allen Sitzplatznummern, z. B. Reihe A: A1 A2 A3 A4 A5 A6 A7 A8. Nutze eine äußere for-Schleife für die Reihen, if/elif/else für den Reihennamen und eine innere for-Schleife für die Sitze.
Teil B · Anspruchsvoll
Gib den Kinoplan erneut aus — diesmal mit *-Markierung für VIP-Plätze — und berechne den Umsatz bei ausverkauftem Saal mit einem Akkumulator umsatz. Nutze denselben Aufbau wie in Teil A, ergänzt um eine Bedingung für die VIP-Plätze.
Quiz

Teste dein Wissen

Sechs Fragen zu Schleifen und Wiederholungen.

Frage 1 / 6
Was macht for i in range(5):?
Frage 2 / 6
Welche Werte erzeugt range(2, 10, 2)?
Frage 3 / 6
Wofür wird ein Akkumulator wie summe = summe + zahl in einer Schleife verwendet?
Frage 4 / 6
Wann verwendet man eine while-Schleife statt einer for-Schleife?
Frage 5 / 6
Zwei verschachtelte for-Schleifen laufen je 3-mal. Wie oft wird der innerste Code-Block insgesamt ausgeführt?
Frage 6 / 6
Was passiert, wenn man in einer while-Schleife vergisst, die Bedingung im Schleifenkörper zu verändern?
0/6
Reflexion

Zum Nachdenken

„Wie viele Zeilen Code bräuchtet ihr, um 'Hallo' zehnmal auszugeben — ohne Schleife? Und wie viele mit einer Schleife?"

Diskutiert in der Klasse: Was passiert, wenn man in einer while-Schleife vergisst, die Bedingung irgendwann False werden zu lassen?