Dies ist eine alte Version des Dokuments!
Selektion oder 'if'-Entscheidungen
Was ist eine Selektion?
In Python wird die Selektion mit den Anweisungen if, elif und else verwendet, um Entscheidungen im Programm zu treffen.
Die Anweisung if prüft eine Bedingung, und wenn diese erfüllt ist, wird ein bestimmter Codeblock (Body) ausgeführt. Wenn die Bedingung nicht erfüllt ist, wird dieser Code-Block nicht ausgeführt. Es kann man mit elif weitere Bedingungen getestet werden, falls diese zweite Bedingung erfüllt ist, wird der Body-Codeblock von elif ausgeführt. Wenn keine der Bedingungen zutrifft, wird der Codeblock unter else ausgeführt.
Oft wird somit bei der Selektion ein Teil des Programms nicht oder zumindest nicht immer ausgeführt.
Beispiel
Ein Beispiel zum Starten, hierbei ist zu bemerken, dass ein Beschleunigungssensor, um Neigungen und Bewegungen zu erfassen genutzt werden kann.
- beschleunigung1.py
from microbit import * #Akzelerometer (Beschleunigungssensor, um Gesten und Bewegungen zu erkennen) while True: if accelerometer.was_gesture('shake'): display.show(Image.CONFUSED) sleep(3000) else: display.show(Image.HAPPY)
In diesem kurzen Programm wird durch eine Endlosschleife immer wieder über den Akzelerometer überprüft, ob dieser nach links geneigt wurde.
Falls dies der Fall ist, wird ein „verwirrtes“ Emoji angezeigt. Durch das if, bzw. das wenn, kann eine Bedingung mit zwei oder mehr Ausgangsmöglichkeiten implementiert werden.
Dadurch verzweig sich das Programm in zwei oder mehrere Äste. Ein einzelner Programmteil wird nur dann ausgeführt, falls die Bedingung als True (wahr) gilt, ansonsten wird dieser Teil des Programms nicht ausgeführt.
Falls es nur ein if - else-Selektion ist, dann wird es nur eine Verzweigung des Programms in 2 Programmäste geben, falls es ein if - elif -…- else -Selektion ist, dann in 3 oder mehr Teile.
- Schliessen Sie die Ampel so wie auf dem Bild an den Micro:bit an. Achten Sie darauf, dass die Masse (Erdung GRN) mit 0V verbunden ist.
- Untersuchen Sie das untenstehende unvollständige Programm. Was genau passiert? Beschreiben Sie kurz.
# Imports go at the top from microbit import * while True: pin0.write_digital(1) if button_a.was_pressed(): pin0.write_digital(0) pin1.write_digital(1)
- Erweitern Sie das Programm so, dass beim Drücken von Knopf A die Ampel für einige Zeit auf Gelb und dann auf Grün wechselt und anschliessend wieder zurück auf Rot.
- Erweitern Sie das Programm nun weiter, so dass bei Grün ein kurzer Ton erzeugt wird und das Display „Go“ anzeigt.
- Erweitern Sie das Programm, dass beim Drücken von Knopf B das gelbe Licht 10 mal blinkt.
- Verändern Sie das Programm weiter, sodass wenn beide Knöpfe gleichzeitig gedrückt werden, ein Symbol Ihrer Wahl angezeigt wird und eine Folge von absteigenden Tönen erzeugt wird und gleichzeitig alle drei Lichter blinken.
mögliche Lösungen
# Imports go at the top from microbit import * import music while True: pin0.write_digital(1) if button_a.was_pressed(): pin0.write_digital(0) pin1.write_digital(1) sleep(500) pin0.write_digital(0) pin1.write_digital(0) pin2.write_digital(1) sleep(2000) speaker.off() pin0.write_digital(0) pin1.write_digital(0) pin2.write_digital(0) sleep(2000) if button_b.was_pressed(): pin0.write_digital(0) counter=0 while(counter<10): pin1.write_digital(1) sleep(500) pin1.write_digital(0) sleep(500) counter=counter+1


