Aussehen
Zählschleife
Erinnerst du dich an Karas Rundgang? Zwölf Schritte, vier Drehungen, sechzehn Zeilen — und wenn die Wiese einen Meter größer wäre, müsstest du alles neu schreiben.
Dagegen gibt es die Wiederholung:
python
for i in range(3):
move()Drei Zeilen weniger, dieselbe Wirkung. range(3) heißt „dreimal", und was eingerückt darunter steht, passiert bei jedem Mal.
Zählschleife
Eine Zählschleife wiederholt einen Block eine vorher festgelegte Anzahl von Malen. Du sagst, wie oft — nicht, wann Schluss ist.
Bis zur Blaubeere
Die Schleife läuft dreimal, die Blaubeere liegt aber weiter weg. Ändere die Zahl so, dass Kara ankommt.
Mehr als eine Zeile im Rumpf
Alles, was gleich weit eingerückt ist, gehört zur Wiederholung:
python
for i in range(4):
putBerry()
move()Kara legt eine Beere, geht weiter, legt eine Beere, geht weiter — viermal. Steht move() dagegen nicht eingerückt, geht sie erst viermal in Folge auf demselben Feld eine Beere legen und dann einen einzigen Schritt. Die Einrückung entscheidet das ganz allein.
Eine Reihe Blaubeeren
Kara soll eine Reihe von sechs Blaubeeren legen.
Überlege dir vorher, in welcher Reihenfolge du legen und laufen lässt — und zähle danach nach, ob es wirklich sechs geworden sind.
Schleife in der Schleife
Der Rumpf einer Wiederholung darf selbst eine Wiederholung enthalten. Damit wird aus Karas Rundgang das hier:
python
for i in range(4):
for j in range(3):
move()
turnRight()Die innere Schleife läuft eine Seite ab, die äußere macht das viermal. Sechzehn Zeilen sind zu fünf geworden, und eine größere Wiese kostet jetzt genau eine geänderte Zahl.
Einmal im Quadrat
Lass Kara ein Quadrat mit der Seitenlänge 3 ablaufen — mit einer Wiederholung in einer Wiederholung.
Was ist eigentlich i?
In for i in range(3) steht i für die Nummer des Durchlaufs. Bisher hast du sie nicht gebraucht, aber sie ist da — und sie fängt bei 0 an, nicht bei 1.
python
for i in range(3):
print(i)Das gibt 0, 1, 2 aus. Drei Durchläufe, aber die letzte Zahl ist 2. Daran gewöhnt man sich schneller, als man denkt, und es hat einen guten Grund: range(3) bedeutet „drei Stück ab null" und nicht „bis drei".
Achtung
range(1, 4) zählt von 1 bis 3 — die erste Zahl gehört dazu, die letzte nicht. Wenn dir ein Durchlauf fehlt oder einer zu viel ist, liegt es fast immer hier.
Noch mehr üben
Von 1 bis 5
Hier erscheinen fünf Zahlen, aber sie fangen bei der falschen an. Sorge dafür, dass 1 bis 5 herauskommt.
Karas Rundgang, kürzer
Nimm dein Programm vom Rundgang und schreibe es mit Wiederholungen neu. Wie viele Zeilen bleiben übrig?