Aussehen
Variablen
Kara hat kein Gedächtnis. Sie sieht immer nur das Feld, auf dem sie steht, und das davor. Wie viele Schritte sie schon gemacht hat, weiß sie nicht — und kann es auch nicht wissen, denn dafür gibt es keinen Sensor.
Eine Variable ist genau dieses fehlende Gedächtnis:
python
schritte = 0Das = ist dabei kein Gleichheitszeichen aus der Mathematik, sondern ein Pfeil nach links: „Schreib den Wert von rechts in den Namen links." Deshalb ergibt diese Zeile auch Sinn, obwohl sie mathematisch unmöglich aussieht:
python
schritte = schritte + 1Rechts steht der alte Wert, links landet der neue. Aus 0 wird 1, beim nächsten Mal aus 1 eine 2. So zählt ein Programm.
Variable
Eine Variable ist ein benannter Platz für einen Wert. Der Name bleibt, der Wert darf sich ändern. Namen dürfen Buchstaben, Ziffern und Unterstriche enthalten und sollten sagen, was drinsteht — schritte ist besser als s.
Mitzählen
Ein Zähler besteht immer aus zwei Teilen, und beide muss man hinschreiben: einmal ganz am Anfang auf null setzen, und dann im Rumpf der Schleife erhöhen.
python
schritte = 0
while not treeFront():
move()
schritte = schritte + 1
print(schritte)Steht die erste Zeile versehentlich in der Schleife, wird der Zähler bei jedem Durchlauf wieder auf null gesetzt und am Ende steht 1 da. Das ist ein Fehler, den man einmal macht und danach nie wieder.
Kara zählt mit
Kara läuft bis zum Baum. Zähle dabei mit, wie viele Schritte sie macht, und gib die Zahl am Ende aus.
Wie viele Beeren waren es?
Diesmal zählt Kara nicht die Schritte, sondern die Blaubeeren, über die sie läuft. Liegenbleiben sollen sie.
Der Unterschied zur vorigen Aufgabe ist genau eine Zeile — aber sie steht woanders.
Sich etwas merken und später benutzen
Eine gezählte Zahl ist erst dann richtig nützlich, wenn das Programm später etwas damit anfängt. Und weil in range() nicht nur eine feste Zahl stehen darf, sondern jede Variable, geht das ohne Umstände:
python
for i in range(schritte):
move()Damit läuft Kara genau so weit, wie sie vorher gelaufen ist — egal, wie weit das war.
Genauso weit zurück
Kara läuft bis zum Baum und merkt sich die Anzahl der Schritte. Danach dreht sie um und läuft genau so weit zurück.
Der Zähler als Bedingung
Bis jetzt hast du die Zählschleife für „so oft" benutzt und die Bedingungsschleife für „solange". Mit einer Variablen kannst du das eine durch das andere ausdrücken:
python
schritte = 0
while schritte < 5:
move()
schritte = schritte + 1Das tut dasselbe wie for i in range(5), ist länger und trotzdem lehrreich: Du siehst, dass eine Zählschleife nichts weiter ist als eine Bedingungsschleife mit einem eingebauten Zähler.
Fünf Schritte, gezählt
Im Programm läuft Kara bisher nur einen Schritt. Ändere die Bedingung so, dass es fünf werden.
Variablen, die sich verändern
Bei Kara zählt eine Variable. Bei Turtle rechnet sie — und das Ergebnis kann man ansehen.
python
laenge = 10
for i in range(60):
forward(laenge)
right(30)Solange laenge gleich bleibt, entsteht ein Kringel. Wächst sie bei jedem Durchlauf, wird daraus eine Spirale. Es ist derselbe Handgriff wie beim Zähler, nur dass man hier sofort sieht, was er anrichtet.
Eine Spirale
Sorge dafür, dass die Länge bei jedem Durchlauf um 5 wächst.
Probiere danach auch andere Zahlen aus — und einen anderen Winkel als 30.
Noch mehr üben
Rückwärts zählen
Dieses Programm zählt von 10 herunter. Lass es von 20 herunterzählen und danach nur die geraden Zahlen ausgeben.
Doppelt so weit
Kara läuft bis zum Baum, dreht um und läuft dann doppelt so weit zurück, wie sie hergekommen ist.