i

Zählschleifen

Betrachte das folgende Programm. Zunächst wird eine Routine namensschild(...) festgelegt, dann noch eine Funktion zur Berechnung der Breite. Im Hauptprogramm wird zuerst die Breite des Namensschildes berechnet. Dann wird die Routine Namensschild 5 mal aufgerufen, jedes mal mit einer anderen y-Koordinate.

Das wollen wir nun eleganter hinbekommen und uns die 5 Aufrufe von namensschild(...) sparen. Hierfür lässt sich in Python die Konstruktion mit for verwenden. Hinter for steht eine Variable und danach eine Liste mit Werten, die die Variable nacheinander annehmen soll.

Hinter dieser Zeile folgen dann eine oder mehrere Zeilen, die mehrfach ausgeführt werden sollen, für jeden Eintrag in der Liste einmal.

Damit man erkennt, welche Zeilen mehrfach ausgeführt werden sollen und wann es "normal" weitergeht, werden die mehrfach auszuführenden Zeilen wieder eingerückt. Diese Technik des Einrückens kennen wir schon von der Definition von Routinen.

In unserem Beispiel wird nur eine Zeile mehrfach ausgeführt, nämlich die Zeile namensschild(y).

Bereiche statt Listen

Wenn eine Befehlsfolge sehr häufig (z.B. 100 mal) wiederholt wird, kann auch die Erstellung einer entsprechend langen Liste sehr lästig sein. Auch hierfür hat Python eine Lösung parat.

Der Befehl range(...) erzeugt — zumindest können wir uns das mal so vorstellen — eine Liste automatisch. Dabei gibt der erste Wert den ersten Wert an, der von der Variablen angenommen wird. Der zweite Wert ist der Wert, der bei der Erstellung der Liste gerade nicht mehr angenommen werden soll. (Es ist etwas gewöhnungsbedürftig, dass es eben nicht der letzte wirklich angenommene Wert ist, aber das können wir leider nicht ändern.) Aus diesem Grund steht in unsersem Programm 141 und eben nicht 140.

Gibt man bei range(...) nur diese beiden Werte an, dann geht Python davon aus, dass alle ganzzahligen Werte dazwischen angenommen werden.

Bei unserem Beispiel wäre das allerdings wenig hilfreich, denn dann würden hunderte von Namensschildchen gezeichnet, jeweils nur um einen y-Schritt versetzt. Deshalb kann man als dritten Parameter noch angeben, um welchen Betrag die Variable bei jedem Durchlauf erhöht werden soll, in unserem Fall um 70.

Aufgabe 1: Einfach nur mal zählen

Betrachte das folgende Programm. Bevor du es startest, überlege dir genau, welche Ausgabe dieses Programm wohl auf den Bildschirm schreiben wird. Schreibe deine Vermutung auf und vergleiche diese dann mit der tatsächlichen Ausgabe.

Aufgabe 2: Zählen mit Abständen

Ändere das Programm oben so ab, dass es die geraden Zahlen bis 20 ausgibt, also 2, 4, ... 20.

Aufgabe 3: Lieblingszahlen

Angela hat mehrere Lieblingszahlen: 2, 13, 42 und 137. Schreibe ein Python-Programm, das all diese Zahlen untereinander ausgibt.

Aufgabe 3: Liniertes "Papier"

Entwirf ein Pythonprogramm, das die Zeichenfläche wie die Seite eines typischen Deutsch-Hefts aussehen lässt, also mit Linien.

Tipp: Schreibe zunächst die Routine waagrecht(...), um die Linien zu zeichnen. Im Hauptprogramm kannst du die Zeichengeschwindigkeit mit speed(0) stark erhöhen.

Aufgabe 4: Kariertes "Papier"

Erweitere dein obiges Programm so, dass es dem karierten Papier eines typischen Mathe-Hefts entspricht.

Suche

v
100.102.4.1
dev.inf-schule.de/entwuerfe/python_online/wiederholungen/zaehlschleifen
dev.inf-schule.de/100.102.4.1
dev.inf-schule.de/@/page/GXxiTQEdcM2in6Yz

Rückmeldung geben