In dieser Lektion beschäftigen wir uns mit der Zählschleife. Dabei programmieren wir wiederum auf den Pfaden von Vera Molnar, einer Pionierin der Computerkunst.
Das Ziel dieser Lektion ist die Programmierung dieser Grafik à la Molnar und zwar mit einem möglichst kurzen Quellcode:
In Python kann mit der Anweisung range(startwert,endwert) eine Liste mit Zahlenwerten angelegt werden. Dabei wird eine Liste erzeugt, die bei 0 beginnt und bis zur letzten Zahl vor endwert
reicht, also von 0 bis endwert-1
. Die im folgenden Beispiel mit range(0,10)
erzeugte Zahlenliste beginnt also mit 0 und geht bis 9, nämlich endwert - 1, d.h. 10 - 1 = 9.
[2011,2012,2013,2014,2015,2016,2017,2018,2019]
Computer sind besonders gut darin, die gleichen Anweisungen (also auch Turtle-Befehle) immer wieder zu wiederholen. Um ein Quadrat zu zeichnen, musst du also nicht viermal die Befehle forward(100) und left(90) eingeben. Es genügt auch, der Turtle zu sagen, sie soll diese zwei Anweisungen viermal wiederholen.
for i in range(0,5): turtle.forward(100) turtle.left(90)
Mit der for-Schleife sagst du der Turtle, sie soll einige Befehle eine bestimmte Anzahl Mal wiederholen. Das bestimmen wir mit der range()-Funktion. Damit der Computer weiss, dass diese Befehle zusammengehören (einen Programmblock bilden), müssen diese gleich weit eingerückt sein. Wir verwenden für Einrückungen grundsätzlich vier Leerschläge.
for Variable in Sequenz: Anweisung1 Anweisung2 ... Anweisungn
for zahl in range(0,10): print(zahl)
In Python besteht die for-Schleife aus drei Elementen:
for
, mit dem die Schleife eingeleitet wird,Variablen
(hier: zahl
), die der Reihe nach alle Werte der folgenden Liste annimmt,[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
, da range(0,10)
), in der die Werte stehen, die die angegebene Variable der Reihe nach annimmt. Diese Liste kann mit range(endwert)
angegeben werden. Nach der Angabe der Liste folgt ein Doppelpunkt als Zeichen dafür, dass hier der Inhalt der Schleife beginnt. In den folgenden Zeilen stehen die Anweisungen, die im Rahmen der Schleife ausgeführt werden sollen, wobei die Zeilen, die zur Schleife gehören, eingerückt sein müssen. Dabei nimmt zahl
der Reihe nach alle Werte in der Liste an, d.h. im obigen Beispiel nimmt zahl
im ersten Durchlauf den Wert 0 an, im zweiten Durchlauf den Wert 1, danach 3 und so weiter, bis zahl
im letzten Durchlauf den letzten Wert der Liste annimmt, also 9.
Aufgabe eines Struktogrammes ist es, den Ablauf eines Computerprogramms auf dem Papier darzustellen.
Erstelle zu folgendem Python-Programm ein Struktogramm:
for i in range(0,5): turtle.forward(100) turtle.left(90)