for-Schleifen werden eingesetzt um einen Abschnitt eines Programms mehrfach auszuführen.
Die for-Schleife wird meist dann verwendet, wenn man vorab weiß, wie oft die Schleife durchlaufen werden soll.
"i" nennt man hier den Schleifenzähler. Er wird nach jedem Durchlauf automatisch um 1 erhöht. Traditionell nimmt man als Schleifenzähler oft i, j, … aber das ist nur eine Vereinbarung. Es handelt sich um einen lokalen Variablennamen. Jeder andere gültige Name hätte auch funktioniert.
Die range()-Funktion liefert bei Übergabe eines Werts n eine Serie der Werte 0 bis n-1 zurück.
Das bedeutet, dass alles, was innerhalb der Schleife ist, genau n mal durchlaufen wird.
Beachte vor allem auch den ":" am Ende der ersten Zeile und die Einrückung für den inneren Bereich der for-Schleife. Alles was eingerückt ist, ist Teil der Schleife, die erste Anweisung, die nicht eingerückt ist, ist nicht mehr Teil der Schleife.
Der Befehl speed(0) sorgt für eine schneller Durchführung des Turtle-Programms.
Manche Editore, wie zum Beispiel Thonny erwarten den Befehl done() am Ende jedes Turtle-Programms. Das wäre hier nicht notwendig, wird aber trotzem vorgezeigt.
1)
Zeichne 25 vertikale parallele blaue dünne (Stärke 1) Linien der Länge 50 im Abstand 5.
Verwende zwischen den Linien pu() und pd().
2)
Zeichne einen Stern mit 30 Strahlen. Länge der Strahlen 100. Farbe Orange, Strichstärke 10.
Jeder zweite Strahl soll 65 Einheiten lang sein.
3)
Zeichne ohne Schleife ein Dreieck: Farbe blau, Seite 30.
Diesen Code platziere in eine Schleife, die 6 mal ausgeführt wird.
Um welchen Winkel muss die Turtle drehen für einen vollen Kreis?
4)
Bearbeite das ursprüngliche Programm.
(Mit f5 kannst du es jederzeit neu laden. Dabei geht aber der geänderte Code verloren!)
Ändere nur einen einzigen Wert um zu folgender Grafik (verkleinert dargestellt) zu kommen-
#-------------------------------
# 1)
# Zeichne 25 vertikale parallele blaue dünne (Stärke 1) Linien
# der Länge 50 im Abstand 5.
# Verwende zwischen den Linien pu() und pd().
from turtle import *
speed(0)
color("blue")
for i in range(25):
lt(90)
fd(50)
bk(50)
rt(90)
pu()
fd(5) # oder 6
pd()
done()
#-------------------------------
# 2)
# Zeichne einen Stern mit 30 Strahlen. Länge der Strahlen 100.
# Farbe Orange, Strichstärke 10.
# Jeder zweite Strahl soll 65 Einheiten lang sein.
from turtle import *
speed(0)
color("orange")
pensize(10)
for i in range(30):
if i % 2 == 0:
fd(100)
bk(100)
else:
fd(50)
bk(50)
lt(12)
done()
#-------------------------------
# 3)
# Zeichne ohne Schleife ein Dreieck: Farbe blau, Seite 30.
# Diesen Code platziere in eine Schleife, die 6 mal ausgeführt wird.
# Um welchen Winkel muss die Turtle drehen für einen vollen Kreis?
from turtle import *
speed(0)
color("blue")
for i in range(6):
fd(30)
lt(120)
fd(30)
lt(120)
fd(30)
lt(120)
#---
lt(60)
done()
#-- mit doppelter Schleife
from turtle import *
speed(0)
color("blue")
for i in range(6):
for j in range(3):
fd(30)
lt(120)
lt(60)
done()
#-------------------------------
# 4)
# Bearbeite das ursprüngliche Programm.
# (Mit f5 kannst du es jederzeit neu laden. Dabei geht aber der geänderte Code verloren!)
# Andere nur einen einzigen Wert um zu folgender Grafik
# (verkleinert dargestellt) zu kommen.
from turtle import *
speed(0)
for i in range(36):
fd(100)
bk(90)
lt(10)
done()