2Fehler verstehen
Behandle jeden Fehler als eine Gelegenheit, etwas zu lernen.
Wenn du verstehst, wodurch ein Fehler ausgelöst wurde, hast du wieder etwas Neues über die Programmiersprache gelernt. Ließ dir darum unbedingt immer die Fehlermeldungen genau durch und versuche zu verstehen, was sie bedeuten.
Du wirst mit der Zeit merken, ob dir ein ähnlicher Fehler schon einmal passiert ist und immer schneller die Ursache des Fehlers ausfindig machen können.
Computer verzeihen nicht
Eigentlich müsste es heißen: Programmiersprachen sind extrem penibel und verzeihen keinen Tippfehler. Aber wenn sie das nicht wären, könnte es Missverständnisse geben und das wäre noch schlimmer als einfach nichts zu tun.
Wenn du auf Fehler stößt, liegt es normalerweise nicht daran, dass du sie absichtlich herbeigeführt hast. In der Regel sind es total banale Kleinigkeiten (Syntaxfehler), die einen Error auslösen und dein Programm sicherheitshalber abstürzen lassen. Aber ob du es glaubst oder nicht: Es ist gut, dass es Fehler gibt! Python zeigt dir durch Fehler, dass er nicht versteht, was du verlangst.
Fehlermeldungen verstehen
Über die serielle Konsole bekommst du die Fehlermeldungen mitgeteilt. Das ist ein großer Vorteil gegenüber Arduino. Wenn du dir die Meldung genau durchliest, erhältst du genug Informationen, um den Fehler zu finden und zu beheben. Die Zeile, die einen Fehler ankündigt, lautet immer:
Zurückverfolgung (jüngste Aufforderung zusetzt)
Die darauf folgenden Zeilen geben Auskunft darüber, wo Python den Fehler vermutet.
Datei "code.py", Zeile 5
In der Zeile steht der Dateiname und die Zeile, in der Python nicht mehr weiter wusste. Die darauf folgende Zeile zeigt die Art des Fehlers an.
IndentationError
IndentationError: unerwarteter Einzug (Einrückung) Bitte Leerzeichen am Zeilenanfang kontrollieren!
Betrachte den Code und wirf einen Blick auf Zeile 5. Die Zeile beginnt mit einem Leerzeichen. Leerzeichen haben in der Programmiersprache Python eine Bedeutung und dürfen nur verwendet werden, wenn ein neuer Block nach einem while
oder nach einem if
bzw. else
beginnt. In den Zeilen 5 bis 10 muss das Leerzeichen also weg.
Einen IndentationError erhältst du also, wenn du an einem Zeilenanfang unerwartet viele Leerzeichen schreibst. Du darfst aber gerne vor das Gleichheitszeichen Leerzeichen einfügen.
led_red = digitalio.DigitalInOut(board.D10)
led_green = digitalio.DigitalInOut(board.D11)
led_blue = digitalio.DigitalInOut(board.D12)
led_red.direction = digitalio.Direction.OUTPUT
led_green.direction = digitalio.Direction.OUTPUT
led_blue.direction = digitalio.Direction.OUTPUT
Verbessere den Fehler und speichere ab!
NameError
Der nächste Fehler lässt nicht lange auf sich warten:
Datei "code.py", Zeile 14, in <module>
NameError: Name 'true' ist nirgends definiert worden. (Schreibweise kontrollieren)
Die nächste Zeile zeigt wieder die Art des Fehlers an. Wirf einen Blick auf Zeile 14 und versuche selbst herauszufinden, was hier falsch ist.
Verbessere den Fehler und speichere ab!
TypeError
Weiter gehts mit dem nächsten Fehler in Zeile 15
Datei "code.py", Zeile 15, in <module>
TypeError: Funktion nimmt 1 Argumente ohne Keyword an, aber es wurden 2 angegeben
Wenn man in Deutschland zur Schule geht, lernt man das Komma als Dezimaltrennzeichen kennen. In einigen Ländern - unter anderem in Großbritannien und den Vereinigten Staaten - benutzt man allerdings den Punkt an Stelle des Kommas. Der Punkt hat sich deshalb in fast allen Programmiersprachen als Dezimaltrennzeichen durchgesetzt.
Das Komma hat in den meisten Programmiersprachen eine andere Bedeutung. Mit einem Komma trennt man die Argumente, die man an eine Methode übergeben möchte, voneinander. Die Zeile time.sleep(0,5)
liest sich also:
Es sollte aber heißen:
Verbessere den Fehler und speichere!
AttributeError
Und schon wieder ein neuer Fehler:
Datei "code.py", Zeile 17, in <module>
AttributeError: 'module' Objekt hat kein Attribut 'Sleep'
Wirf einen Blick auf Zeile 17 und versuche wieder selbst den Fehler zu finden.
time.Sleep(0.5)
Fazit
Du hast nun hoffentlich verstanden, dass es etwas ganz Normales ist, beim Programmieren Fehler zu machen. Mache dich bereit, dass du in Zukunft viel Zeit damit zubringen wirst, Fehler aufzuspüren. Du kennst jetzt vier wichtige Error-Typen. Es gibt aber noch eine ganze Menge weiterer. Manchmal ist es hilfreich im Internet recherchieren, um herauszufinden was sie bedeuten. Profis schreiben sogar ihre eigenen Fehlertypen für ihre Module.