HomeTurtlegrafikGPanelRobotik WebTigerPython |
Python - Online |
Deutsch English |
DU LERNST HIER... |
wie du die for-Schleifen als Alternative zu den while-Schleifen oder repeat-Schleifen einsetzten kannst. |
MUSTERBEISPIELE |
In vielen Programmiersprachen sind for-Schleifen eine oft eingesetzte Alternative zu den while-Schleifen und werden insbesondere dann verwendet, wenn bei jedem Schleifendurchgang eine Schleifenvariable um den gleichen Wert (in Python ein ganzzahliger Wert) verändert wird. Die einfachsten for-Schleifen, sind sogenannte Zählschleifen in der Form:
range(n) liefert die Zahlen 0, 1, 2, ...bis n-1, also insgesamt n Zahlen (Es handelt sich eigentlich im eine Liste mit den Zahlen [0, 1, .., n-1] ) . Der Startwert von i ist 0 und i wird nach jedem Schleifendurchlauf um 1 erhöht. Die Anweisungen im Schleifenblock werden also n mal wiederholt. Diese Schleife entspricht einer while-Schleife mit Startwert 0, der Schleifenbedingung i < n und der Wertänderung i = i +1. Bemerkung: Falls im Schleifenkörper i nicht verwendet wird, kann in TigerJython an Stelle der for-Schleife eine repeat-Schleife verwendet werden, die keine Variablen benötigt und daher für Programmiereinsteiger einfacher verständlich ist. Beispiel 1: Mit einer for-Schleife einen Linienschar zeichnen Programm:
Die allgemeine Form einer for-Schleife verwendet range() mit drei Parametern:
Der Startwert start muss zu Beginn nicht 0 sein und die Wertänderung step kann eine beliebige ganze Zahl (auch negativ) sein. Ist step positiv, so werden die Anweisungen im Schleifenblock werden wiederholt, so lange i kleiner als der stop-Wert ist. Anschaulich erkennt man den Unterschied zwischen den for-Schleifen mit 1, 2, bzw. 3 Parametern an folgenden Beispielen:
Beispiel 3: Verwendung von verschachtelten for-Schleifen
Programm:
if (x + y) % 2 == 0 überprüft, ob die Summe des Zeilen- und Spaltenindex eine gerade Zahl ist. Wie du leicht siehst, muss in diesem Fall ein gefülltes Quadrat gezeichnet werden. Die Modulo-Division a % b gibt bei der ganzzahligen Division von a durch b den Divisionsrest zurück. a % 2 gibt also 0 zurück, falls a gerade ist, und gibt 1 zurück, falls a ungerade ist. Beispiel 4: Zeichnen eines Moiré-Musters Programm:
|
MERKE DIR... |
Die Funktion range() in der for-Schleife kann 1, 2 oder 3 Parameter (start, stop, step) haben. Falls nur ein Parameter vorhanden ist, liefert range(n) die Zahlen 0, 1, 2, ...bis n-1, die Befehle in der Schleife werden also n mal wiederholt (gleich wie bei repeat n:) Anstelle einer for-Schleife kannst du immer auch eine while-Schleife verwenden. Das Umgekehrte ist nicht der Fall, da für die Wertänderung in der for-Schleife nur ganze Zahlen erlaubt sind. |
ZUM SELBST LÖSEN |
1) |
|
a) In einer Reihe b) In einer Diagonale |
2) |
|
|
3) |
|