Ein Zyklus(Schleife) wird benötigt, um einen Codeblock wiederholt auszuführen.
In Python gibt es 2 Schleifentypen: Die while()-Schleife und die for()-Schleife.
Beim Calliope Mini gibt es verschiedene Schleifen, mit verschiedenen Abbruchbedingungen.
Als erstes werden wir genauer auf die while()-Schleife eingehen.
Klicke auf den Button um zur while()-Schleife zu navigieren.
Als nächstes ist die for()-Schleife dran.
Klicke auf den Button um zur for()-Schleife zu navigieren.
Bei for-Schleifen - Aufgabe 1 hat man das Programm zu Sequentielle Datentypen - Aufgabe 2b) mit einer for-Schleife um 2 Zeilen Code gekürzt.
Je nachdem, welche Funktionen eine Schleife erfüllen soll, bietet sich die eine oder die andere Schleife an.
Wenn man eine Aktion wiederholen möchte, solange eine Bedingung erfüllt ist nutzt man eine while()-Schleife.
Eine for()-Schleife wird genutzt, wenn man über eine Sequenz iterieren möchte, wie z.B. über eine Liste, ein Tupel, einen String oder ein anderes iterierbares Objekt.
Zum besseren Vergleich werden die Merkmale in der untenstehenden Tabelle nochmal aufgeführt.
while-Schleife | for-Schleife | |
---|---|---|
Beschreibung |
Wiederholung einer Aktion, solange eine Bedingung erfüllt ist.
→kopfgesteuerte Schleife |
Iteration über eine Sequenz wie Listen, Tupel, Strings oder andere iterierbare Objekte.
→Zählschleife |
Aufbau |
while i operator integervariable: |
for i in listenname: |
Laufvariable erstellen | muss vor dem Schleifenaufruf erstellt werden | muss nicht extra erstellt werden |
Laufvariable ändern | muss innerhalb der Schleife hoch- oder runtergezählt werden |
wird am Ende der Schleife automatisch hoch- oder runtergezählt |
Schrittweite | kann innerhalb der Schleife beliebig angepasst werden | kann nur einmalig vor Beginn der Schleife festgelegt werden |
Bedingungs-Test | Die Bedingung wird nach jedem Schleifendurchlauf überprüft | Die Elemente oder Länge des sequentiellen Datentyps werden nur beim erstmaligen aufrufen der Schleife abgefragt.
Beispiel |
Anwendung |
|
|
Ob die Schleifen richtig verstanden wurden, kann man hier testen.
Löse die Aufgaben erst mit einer while()-Schleife, danach mit einer for()-Schleife.
Programmname: a1_zahlen.py
Es sollen die Zahlen von 1 bis 4 hoch- und herunter gezählt werden.
Programmname: a2_alphabet.py
Es sollen Buchstaben von A bis Z vorwärts und rückwärts ausgeben werden.
Programmname: a3_quadratzahlen.py
Es sollen die Quadratzahlen von 10 bis 20 ausgeben werden.
Programmname: a4_fibonacci.py
Stelle die Fibonacci Zahlen von 1 bis zu einem beliebigen Endwert in einer Schleife zusammen!
Hier beginnend ab der Ziffer 1 (1,2,3,5,8,13, ... ).
Die Summe der beiden vorherigen Zahlen ergibt die Folgezahl.
Falls das Turtle-Modul noch nicht bekannt ist kann man unter Turtle Grundlagen alles nötige ndazu nachlesen.
Achtung!
Ohne die Kenntnisse über die Grundlagen ist sind die folgenden Aufgaben schwierig zu lösen
Löse die Aufgaben der for()-Schleife nun mit einer while()-Schleife. Schaue dir auch dieses Beispiel an.
Schleifen lassen sich durch Schleifensteueranweisungen wie break, pass und continue steuern.
Klicke auf den Button um zu Schleifensteueranweisungen zu navigieren.
Eine besondere Art die while()-Schleife zu nutzen ist die do-while()-Schleife.
Klicke auf den Button um zur do-while()-Schleife zu navigieren.