Python lernen · Schritt 5 von 14
Im MUD: Kampfrunden und der Respawn der Monster

Python lernen · 07.09.2026

Python lernen: Schleifen

Schleifen wiederholen Anweisungen — ohne dass du sie hundertmal hinschreibst. for, while, break/continue, Verschachtelung, Übungen und Quiz.

Ein Kampf besteht aus Runden, ein Inventar aus Gegenständen, ein Jahr aus Tagen — fast alles im Programmieren ist Wiederholung. Python hat dafür zwei Werkzeuge: for, wenn du weißt worüber du läufst, und while, wenn du nur die Abbruchbedingung kennst.

for und range

for i in range(1, 4):
    print("Kampfrunde", i)

# Kampfrunde 1
# Kampfrunde 2
# Kampfrunde 3

range(1, 4) zählt von 1 bis 3 — die Endzahl gehört nie dazu. Mit drittem Argument kannst du springen: range(0, 10, 2) liefert 0, 2, 4, 6, 8; rückwärts zählt range(10, 0, -1). Und for läuft über alles Aufzählbare — auch über Text:

for buchstabe in "MUD":
    print(buchstabe)

Zählen und Summieren

Das wichtigste Muster der Programmier-Anfängerzeit: ein Wert sammelt Ergebnisse aus der Schleife ein.

summe = 0
for i in range(1, 101):
    summe += i
print(summe)   # 5050 — danke, Gauß!

while: solange wie nötig

hp = 5
while hp > 0:
    hp -= 1
    print("Treffer! hp =", hp)

print("Der Kampf ist vorbei.")

while läuft, solange die Bedingung wahr ist. Achtung: Die Variable in der Bedingung muss sich irgendwann ändern — sonst entsteht eine Endlosschleife. In der echten Konsole beendest du sie mit Strg+C, im Playground durch Neuladen der Seite.

break und continue

for gegner in ["Ratte", "Ork", "Drache"]:
    if gegner == "Ork":
        continue   # Ork überspringen, gleich weiter
    if gegner == "Drache":
        break      # hier endet die Runde vorzeitig
    print("Kampf gegen", gegner)

# Kampf gegen Ratte

continue springt zum nächsten Durchlauf, break verlässt die Schleife sofort — bei verschachtelten Schleifen nur die innerste.

Schleifen im Schleifenknäuel

for reihe in range(1, 4):
    for spalte in range(1, 4):
        print(f"{reihe}x{spalte}", end=" ")
    print()

# 1x1 1x2 1x3
# 2x1 2x2 2x3
# 3x1 3x2 3x3

Bei jedem Durchlauf der äußeren Schleife läuft die innere komplett. Neun Durchläufe hier — und plötzlich erklärst du dir, warum verschachtelte Schleifen bei großen Datenmengen so schnell langsam werden.

So übst du das

  • Countdown: von 10 rückwärts bis 1, dann „Start!“.
  • Zahlenraten (Klassiker!): Geheimzahl festlegen, mit while und input() raten lassen, „höher/tiefer“ antworten — dein erstes echtes Spiel.
  • Muster drucken: Sterne-Dreieck mit print("*" * i).
  • Würfel-Statistik: 100 Würfe mit random.randint(1, 6) (Artikel 10) zählen — wie oft kommt die 6?
  • Tischrechnen: das kleine Einmaleins als Tabelle ausgeben.

Übungen

Übung 1 — Rückwärts-Countdown

Gib die Zahlen 10 bis 1 rückwärts aus — in einer Zeile Code, ohne die Zahlen einzeln zu tippen.

Musterlösung zeigen
for i in range(10, 0, -1):
    print(i)
print("Start!")

Übung 2 — Die Gauß-Schleife

Berechne die Summe 1 + 2 + … + 100 mit einer Schleife. (Die Antwort 5050 kennst du schon — dein Programm soll sie ausrechnen.)

Musterlösung zeigen
summe = 0
for i in range(1, 101):
    summe += i
print(summe)

Übung 3 — Zahlenraten

Errate die Geheimzahl: Lege geheim = 7 fest, frage in einer while-Schleife per input("Tipp: ") ab und antworte „höher!“ oder „tiefer!“ bis der Tipp stimmt.

Musterlösung zeigen
geheim = 7
tipp = None

while tipp != geheim:
    tipp = int(input("Dein Tipp: "))
    if tipp < geheim:
        print("höher!")
    elif tipp > geheim:
        print("tiefer!")
print("Treffer!")

Übung 4 — Sternen-Dreieck

Gib mit zwei verschachtelten Schleifen ein Dreieck aus Sternen aus — Zeile 1 ein Stern, Zeile 5 fünf Sterne.

Musterlösung zeigen
for i in range(1, 6):
    sterne = ""
    for j in range(i):
        sterne += "*"
    print(sterne)

# Eleganter geht: print("*" * i)

Quiz — Teste dich

Erst überlegen, dann aufklappen — so trainiert es am meisten!

  1. Welche Zahlen liefert range(1, 10, 2)?
  2. Wie oft läuft der innerste Befehl bei zwei verschachtelten range(3)-Schleifen?
  3. Was passiert bei while False: print("x")?
  4. Ein break in der inneren von zwei Schleifen — was endet?
  5. while hp > 0: print(hp) — was läuft schief?
Quiz-Lösungen anzeigen
  1. 1, 3, 5, 7, 9 — Start 1, Schritt 2, Stop vor 10.
  2. 9-mal (3 × 3).
  3. Gar nichts — die Bedingung ist von Anfang an falsch, die Schleife läuft null Durchläufe.
  4. Nur die innere Schleife — die äußere läuft normal weiter.
  5. hp ändert sich nie → Endlosschleife. Innerhalb der Schleife muss hp kleiner werden.

↩ Vorheriger Teil: Konditionen

Weiter geht's mit dem nächsten Teil: Funktionen

Mehr aus der Kategorie „Python lernen“

← Zurück zum Lehrpfad