Wiederholen von Codeblöcken
Häufig haben wir beim Programmieren die Situation, dass wir einen gewissen Codeblock, also eine Folge von Anweisungen, mehrfach ausführen möchten.
Das ist beispielsweise beim zeichnen eines Quadrats so:
from gturtle import *
makeTurtle()
fd(50)
rt(90)
fd(50)
rt(90)
fd(50)
rt(90)
fd(50)
rt(90)
Die beiden Zeilen fd(50)
und rt(90)
werden hier viermal wiederholt.
Das ist umständlich und auch gar nicht nötig, denn wir können
Python anweisen, die zwei Zeilen einfach viermal auszuführen.
In diesem Kapitel lernst du Schleifen kennen, mit denen kannst du Codeblöcke beliebig oft wiederholen lassen.
Die for Schleife
Möchten wir einen Codeblock öfter ausführen so verwenden wir die for Schleife. Möchten wir die beiden Zeilen aus dem vorhergegangen Beispiel viermal wiederholen, so schreiben wir:
for i in range(4):
fd(50)
rt(90)
Damit Python weiß, welche Anweisungen den zu wiederholenden Codeblock bilden, müssen diese gleich weit eingerückt sein. Wir verwenden für Einrückungen grundsätzlich vier Leerschläge.
Die Variable i
ist die Zählvariable, die mitzählt bei welcher Wiederholung wir sind.
⚠️ Vorsicht: die Zählvariable beginnt bei 0
zu zählen,
wie überall in der Informatik üblich.
Deshalb zählt sie bei vier Wiederholungen von 0 bis 3.
Beispiel
Um ein regelmäßiges Neuneck zu zeichnen muss die Turtle neunmal geradeaus gehen und sich dann um 40° drehen. Würdest du das alles untereinander schreiben, dann würde das Programm ziemlich lange werden. Hier verwenden wir in Zeile 4 aber die for-Schleife und sagen der Turtle damit, sie soll die zwei eingerückten Funktionsaufrufe in Zeilen 5 und 6 neunmal wiederholen.
from gturtle import *
makeTurtle()
for i in range(9):
fd(50)
rt(40)
Übungen
📝 Übung 21
Zeichne die nebenstehende Figur. Dazu brauchst du auch die Funktionen bk() und dot().
📝 Übung 22
Zeichne eine Perlenkette, die aus 18 Perlen (dots) besteht. Zwischen den Perlen muss die Turtle jeweils einige Schritte vorwärts gehen und um einen kleinen Winkel (z.B. 20°) nach links drehen.
📝 Übung 23
Zeichne die Treppenfigur in der nebenstehenden Abbildung.
Verwende dazu die for-Schleife.
📝 Übung 24
Zeichne das Pentagramm in der nebenstehenden Abbildung.
Überlege dir zuerst, wie die Drehwinkel lauten
und verwende wieder die for-Schleife um die Figur zu zeichnen.
📝 Übung 25
Zeichne den Stern in der nebenstehenden Abbildung.
Überlege dir zuerst, welche Teile wiederholt werden
und verwende wieder die for-Schleife um die Figur zu zeichnen.
📝 Übung 26
Schreibe ein Programm, bei dem der Benutzer eine Ganzzahl eingeben kann. Gibt der Benutzer die Zahl 3 ein, so wird ein regelmäßiges Dreieck gezeichnet. Gibt der Benutzer die Zahl 4 ein, so wird ein regelmäßiges Viereck gezeichnet, und so weiter.
📝 Übung 27
Schreibe ein Programm, beim der Benutzer eine positive Zahl eingeben muss. Das Programm soll dann in einer for-Schleife alle Teiler der eingegeben Zahl ermitteln und ausgeben.
Beispiel:
- Eingabe: 24
- Ausgabe: 1, 2, 3, 4, 6, 8, 12
📝 Übung 28
Schreibe ein Programm, welches die Wurzeln aller Zahlen von 1 bis 20 ausgibt.
Ausgabe: 1, 1.4142, 1.7320, 2, ...., 4.3588, 4.4721
🧭 Zusammenfassung
Mit for i in range(anzahl):
gibst du der Turtle
an, sie soll einen oder mehrere Anweisungen anzahl
-mal wiederholen,
bevor sie mit neuen Anweisungen weitermacht.
Alles, was wiederholt werden soll, muss unter repeat stehen und eingerückt sein.
for i in range(anzahl):
Anweisungen die
wiederholt
werden sollen