Endlosschleife
Im dritten Abschnitt folgt das, was Arduino-Programmierer als loop-Funktion kennen.
Die while
-Schleife
Eine Schleife ist eine besondere Kontrollstruktur. Mit Schleifen lassen sich Programmzeilen wiederholt ausführen. In jeder Programmiersprache gibt es Schleifen, da das Programmieren ohne Schleifen keinen Sinn machen würde.
Normalerweise sollen Schleifen irgendwann abbrechen und das Programm darunter fortgesetzt werden. Darum muss zu Beginn eines Schleifendurchlaufs stets eine Bedingung überprüft werden sein. Solange diese Bedingung wahr ist, wird die Schleife ein weiteres Mal durchlaufen. Eine einfache Schleife könnte so aussehen:
i = 10
while i > 0:
print(i)
i = i - 1
print(i)
Nachdem in Zeile 1 eine Variable i
mit dem Wert 10
definiert wurde, folgt in Zeile 2 der Schleifenkopf. Die Bedingung lautet: Solange i
größer als 0
ist.
Alles was in der Schleife wiederholt werden soll, steht im Schleifenrumpf. Die vier Leerzeichen sind wichtig. Sie zeigen an, welche Zeilen im Schleifenrumpf stehen.
Die letzte Zeile gehört nicht mehr zur Schleife und wird ausgeführt sobald die Schleife beendet ist.
10
9
8
7
6
5
4
3
2
1
0
Die unendliche while
-Schleife
Mit while True:
definiert man eine Endlosschleife. Der Code innerhalb einer Endlosschleife wird immer wieder ausgeführt, da die Bedingung dieser Schleife immer True
(wahr) ist
while True:
bedeutet im Grunde: "Tue für immer folgendes:".
Der gesamte Code, der unterhalb des Schleifenkopfes eingerückt ist, befindet sich innerhalb der Schleife. Innerhalb unserer Schleife stehen vier Befehle:
while True:
led.value = True
time.sleep(1.0)
led.value = False
time.sleep(0.5)
In der zweiten Zeile steht led.value = True
. Hier wird die LED eingeschaltet.
In der nächsten Zeile (3) steht time.sleep(1.0)
.
Diese Zeile (3) weist CircuitPython an, den laufenden Code für eine Sekunde anzuhalten. Da dies zwischen dem Ein- und Ausschalten der LED liegt, ist die LED eine Sekunde eingeschaltet.
Der Punkt steht für das in Deutschland gebräuchliche Komma. 1.0 heißt also "Eins Komma Null"
Die nächsten beiden Zeilen (4 und 5) ähneln den ersten beiden.
led.value = False
weist CircuitPython an, die LED auszuschalten, und time.sleep(0.5)
weist CircuitPython an, weitere 0,5 Sekunden zu pausieren. Da das zwischen dem Aus- und Wiedereinschalten der LED geschieht, scheint es, als sei die LED für 0,5 Sekunden ausgeschaltet.
Die Schleife beginnt wieder von vorne und wird solange fortgesetzt, solange die Stromversorgung gewährleistet ist und kein Reset durchgeführt wird!