3Die Konsole und die REPL
Gute Arbeit! Du hast alle Fehler gefunden und verbessert. Wenn du nun einen Blick in deine serielle Konsole wirfst, wird dort ständig neuer Text gestreamt und die rote LED sollte nun auch endlich blinken.
Der print-Befehl
Die serielle Konsole - unten im Fenster - zeigt dir alle, von deinem Code generierten Ausgaben an. Das ist praktisch, wenn du zum Beispiel Daten von einem Sensor anzeigen möchtest oder wie im Beispielprogramm oben, wann eine Schleife von vorne beginnt.
Der print-Befehl ist also perfekt dazu geeignet, um dir vom Programm eine Rückmeldung geben zu lassen. Du kannst sie auch gut verwenden, um Fehler aufzuspüren. Wenn dein Code nicht funktioniert und du herausfinden möchtest, wo er versagt, kannst du print
-Anweisungen an verschiedenen Stellen platzieren, und beobachten, welche Anweisung ausgeführt werden und welche nicht.
Die serielle Konsole ist ein mächtiges Werkzeug, wie du in den nächsten Abschnitten sehen wirst. Du wirst bemerkt haben, dass dein Programm schon eine ganze Weile ununterbrochen läuft. Das ist auch gut so. Um uns im nächsten Abschnitt der REPL zuzuwenden, werden wir das Programm aber jetzt brutal abbrechen.
Die CircuitPython-REPL
Drückte die Tastenkombination Strg + C um das laufende Programm abzuwürgen und drücke anschließend eine beliebige Taste um dich mit der REPL zu verbinden.
Die Fehlermeldung KeyboardInterrupt
zeigt einen Programmabbruch durch die Tastatur an. Wenn du dir die Zeile darüber genauer anschaust, siehst du, welche Zeile in deinem Code kurz vor dem Programmabbruch ausgeführt wurde. Der Python Interpreter möchte dir mit dieser Fehlermeldung mitteilen, dass das Programm unerwartet abgebrochen wurde (unerwartet für CircuitPython).
Die ersten Informationen, die du von der REPL erhältst, sind …
die CircuitPython-Versionsnummer,
das Datum, an dem diese Version erstellt wurde,
der Name des Boards und
der Name des Mikrochips.
Danach erscheint der REPL-Prompt: >>>
REPL steht für read-evaluate-print-loop. Das bedeutet übersetzt: Lesen - Ausführen - Anzeigen - Wiederholen.
Du kannst dir die REPL wie einen Chat mit dem Python-Interpreter vorstellen. Python wartet auf deinen Befehl (read) und führt ihn aus (evaluate), wenn du die Eingabetaste drückst. Wenn der Befehl ausgeführt wurde, erhältst du (manchmal) eine Rückmeldung (print) und das Spiel wiederholt (loop) sich so lange von vorn bis du die REPL verlässt.
Der Prompt >>>
zeigen dir an, dass Python auf deinen nächsten Befehl wartet. Die farbige LED auf deinem Board sollte außerdem weiß leuchten.
Teste doch mal, ob Python rechnen kann.
Führe als nächstes help()-Befehl aus. Dieses Kommando begrüßt uns in der REPL und zeigt uns, wo wir mit der Erkundung der REPL beginnen sollen.
Tippe help()
ein und bestätige die Ausführung mit der Eingabetaste:
Der erste Teil der Nachricht ist ein weiterer Verweis auf die verwendete CircuitPython-Version. Darauf folge eine URL auf die englischsprachigen CircuitPython-Anleitungen.
Interessant ist die letzte Zeile. Probieren wir aus, was dort steht.
Erinnerst du dich noch daran, als wir über das Importieren von Modulen/Bibliotheken sprachen. Genau darum geht es hier! Lass uns das ausprobieren!
Gebe das Kommando help("modules")
ein.
Es erscheint nun eine Aufzählung aller integrierten Module:
Die import-Anweisung und der dir-Befehl
Dies ist eine Liste aller in CircuitPython integrierten Kernbibliotheken. Im Kapitel CircuitPython Module haben wir kurz angesprochen, dass zum Beispiel das Modul board über die Pins (Anschlüsse) des Boards Bescheid weiß.
Gib jetzt import board
in die REPL ein und drücke die Eingabetaste.
Es erscheint sofort eine neue Eingabeaufforderung und es sieht so aus, als sei nichts passiert, aber das ist nicht der Fall! Wenn du dich noch erinnerst, teilt die import-Anweisung Python mit, dass das Programm dieses Modul verwenden möchte.
Möchtest du dir anschauen, was ein Modul anbietet, so gebe einfach dir(board)
ein. Du bekommst wieder eine Liste angezeigt.
Wow! Was ist das? Du bekommst eine Liste aller Pins, die du in deinem Code verwenden kannst, angezeigt. Die Board-Liste unterscheidet sich je nach verwendetem Board geringfügig.
Fazit
Du weißt nun, wie du einzelne Codezeilen in der REPL testen kannst. Die REPL eignet sich darum auch fantastisch um Fehler in deinen Programmen aufzuspüren, indem du deinen Code Zeile für Zeile eingibst und schaust, wo er versagt. Außerdem du kannst nachschauen, welche Bibliotheken (Module) dir zur Verfügung stehen, und diese Bibliotheken untersuchen.
Du kannst im Prinzip auch ganze Programme in die REPL schreiben, um sie zu testen. Denke jedoch daran, dass der Code, den du in die REPL eingegeben hast, nirgendwo gespeichert wird. Wenn du etwas getestet hast, das du behalten möchtest, dann speichere den Code irgendwo auf deinem Computer oder direkt auf dem Board!
Aufgaben
Wir verlassen nun wieder die REPL um fortzufahren.