Python: Wiederholung
Nutzen Sie Schleifen (for), um wiederholte Anweisungen mit weniger Code auszuführen – von einfachen Quadraten bis zu verschachtelten Schleifen.
- Python: Sie geben den Zweck einer Schleife in eigenen Worten wiederVerstehen
- Python: Sie können einfachen Code mit for i in range() lesen und beschreiben, was er macht.Verstehen
- Python: Sie setzen for i in range(...) ein, um Turtle-Befehle mehrfach auszuführen.Anwenden
In diesem Modul lernen Sie, wie Sie mit for
-Schleifen Befehle mehrfach ausführen lassen können, ohne den Code zu duplizieren. Sie üben das Prinzip an einfachen und verschachtelten Wiederholungen mit der Turtle.
Einführung
Computer sind besonders gut darin, die gleichen Anweisungen (also auch Turtle-Befehle) immer wieder zu wiederholen.
Um ein Quadrat zu zeichnen, müssen Sie also nicht viermal forward(100)
und left(90)
schreiben.
Es genügt, der Turtle mitzuteilen, dass sie diese beiden Anweisungen viermal wiederholen soll.
Note
Programmierkonzepte
-
Einfache Wiederholstruktur statt Codeduplikation
-
for
-Struktur in Python -
Einrückungen (4 Leerzeichen) sind Pflicht
for-Struktur
Mit der Anweisung
for i in range(4):
sagen Sie der Turtle, sie soll die eingerückten Zeilen viermal wiederholen.
Vergessen Sie den Doppelpunkt am Ende nicht!
Quadrat mit For-Schleife
from turtle import *
for i in range(4):
forward(100)
left(90)
Note
Mit for i in range(Anzahl):
sagen Sie dem Computer, er soll eine oder mehrere Anweisungen «Anzahl» Mal wiederholen, bevor er weitere Anweisungen ausführt. Alles, was wiederholt werden soll, muss unter for
stehen und eingerückt sein.
for i in range(Anzahl):
Anweisungen, die
wiederholt werden
sollen
Warning
Typische Fehler
-
Fehlender Doppelpunkt
:
nach derfor
-Zeile -
Falsche oder fehlende Einrückung
-
Zu viele oder zu wenige Wiederholungen, weil der Wert in
range()
nicht stimmt
Verschachtelte Schleifen
Ein Quadrat lässt sich leicht mit einer vierfachen Wiederholung zeichnen.
Wenn Sie jedoch 20 Quadrate zeichnen möchten, die jeweils um 18° gegeneinander verdreht sind, benötigen Sie zwei ineinander geschachtelte for
-Schleifen:
-
Innere Schleife: zeichnet ein einzelnes Quadrat
-
Äussere Schleife: wiederholt das Zeichnen und Drehen 20 Mal
Wichtig:
-
Jede Schleife erhält ihre eigene Schleifenvariable (
i
,j
…) -
Alle Anweisungen, die wiederholt werden sollen, müssen korrekt eingerückt sein
-
Mit
speed("fastest")
beschleunigen Sie die Zeichnung
from turtle import *
speed("fastest")
for i in range(20):
for i in range(4):
forward(80)
left(90)
right(18)
Challenge
Aufgabe Treppe
Zeichnen Sie eine Treppe mit 7 Stufen.
Challenge
Aufgabe Stern
Zeichnen Sie einen Stern. Verwenden Sie dabei den Befehl back()
.
Challenge
Aufgabe - Ausgefüllter Stern
Einen «richtigen» Stern können Sie mit den Drehwinkeln 140° und 80° zeichnen.
Challenge
Aufgabe – Quadrate
Zeichne folgende Figur mit zwei verschachtelten for
-Anweisungen. Im inneren for
-Block wird ein Quadrat gezeichnet.
Challenge
Perlenkette
Zeichnen Sie eine Perlenkette, die aus 18 Perlen (dots) besteht.
Challenge
import random
# hier kommt ihr code
# über mehrere Zeilen
# und irgendwo ...
# ... In der einen Schlaufe
x = random.randint(-1000,1000)
y = random.randint(-1000,1000)
penup()
goto(x, y)
pendown()