Lektion 3 von 35Python
Python · Lektion 3 · 20 Minuten
Schleifen – Dinge wiederholen
Das lernst du
- Mit
forundrange()Code mehrmals ausführen - Mit
whilewiederholen, solange etwas gilt - Endlosschleifen erkennen und vermeiden
Warum Schleifen?
Stell dir vor, du sollst „Hallo“ hundertmal ausgeben. Hundert Zeilen print("Hallo")? Viel zu viel Arbeit. Eine Schleife wiederholt Code für dich.
Die for-Schleife
for geht der Reihe nach durch eine Folge von Werten. range(5) erzeugt die Zahlen 0, 1, 2, 3, 4 – also fünf Zahlen, beginnend bei 0.
for runde in range(5):
print(f"Runde {runde}")
print("Fertig!")Drück auf Schritte und beobachte die Variable runde. Du siehst, wie Python immer wieder zur Zeile mit for zurückspringt.
range kann noch mehr:
| Aufruf | Zahlen |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(1, 6) | 1, 2, 3, 4, 5 |
range(0, 20, 5) | 0, 5, 10, 15 |
range(3, 0, -1) | 3, 2, 1 |
Rechnen in der Schleife
Schleifen sind super, um Dinge zusammenzuzählen. Hier addieren wir alle Zahlen von 1 bis 100:
summe = 0
for zahl in range(1, 101):
summe = summe + zahl
print(f"Die Summe ist {summe}.")Die while-Schleife
while (solange) wiederholt, solange eine Bedingung wahr ist. Das ist praktisch, wenn du vorher nicht weißt, wie oft.
guthaben = 20
while guthaben >= 7:
guthaben = guthaben - 7
print(f"Kinokarte gekauft, noch {guthaben} Euro übrig.")
print("Geld reicht nicht mehr.")Achtung, Endlosschleife: Wenn sich die Bedingung nie ändert, läuft
whilefür immer. Probierwhile True: print("Hilfe")aus – und drück dann auf Stopp.
Merke:
fornimmst du, wenn du weißt, wie oft.whilenimmst du, wenn du wiederholst, bis etwas passiert.
Kurz-Check
Bevor es an die Aufgabe geht: Was gibt dieses Programm aus? Tipp deine Vermutung ein – Python rechnet danach nach.
summe = 0
for zahl in range(1, 4):
summe = summe + zahl
print(summe)Deine Aufgabe
Jetzt bist du dran
Programmiere den Countdown für einen Raketenstart: Gib die Zahlen von 10 bis 1 aus, jede in einer eigenen Zeile, und danach Start!. Benutze dafür eine Schleife – zehnmal print() zählt nicht.
# Countdown von 10 bis 1, danach "Start!"- Denkanstoß
Die ersten zehn Zeilen müssen 10, 9, 8 … 1 sein. Tipp –
range(10, 0, -1)zählt rückwärts. - Welcher Befehl hilft?
Nach der 1 soll genau eine Zeile „Start!“ folgen – und nichts anderes.
Nutze
foroderwhile, statt jede Zahl einzeln mitprint()auszugeben. - Lückencode – ergänze die ___
for zahl in ___: print(___) print(___)
Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.
Lösung anzeigen🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:
for zahl in range(10, 0, -1):
print(zahl)
print("Start!")Für Schnelle
Profi-Aufgabe
Baue eine Zahlenpyramide mit hoehe Zeilen. In Zeile 1 steht 1, in Zeile 2 1 2, in Zeile 3 1 2 3 – und so weiter bis zur Zeile hoehe. Die Zahlen sind durch genau ein Leerzeichen getrennt.
hoehe = 4
# Eine Zeile pro DurchlaufProfi-Lösung anzeigen
hoehe = 4
for zeile in range(1, hoehe + 1):
zahlen = []
for zahl in range(1, zeile + 1):
zahlen.append(str(zahl))
print(" ".join(zahlen))