Konzepterklärung
Debugging ist der Moment, in dem Programmieren aufhört, Theorie zu sein, und sich real anfühlt. Sie schreiben etwas, das korrekt aussieht, führen es selbstbewusst aus, und Python zeigt Ihnen sofort, dass ein Detail falsch ist. Das ist kein Fehler. Das ist normale Entwicklung. In dieser Lektion üben Sie, einen Fehler zu lesen, anstatt emotional darauf zu reagieren. Das untenstehende Skript enthält einen kleinen, aber realistischen Fehler: Die Daten existieren, aber der Funktion wird der falsche Variablenname übergeben. Nachdem Sie das behoben haben, werden Sie absichtlich ein zweites Problem auslösen, damit Sie sehen können, wie sich eine andere Art von Fehler anfühlt. Das Ziel ist nicht nur, das Programm zum Laufen zu bringen. Das Ziel ist es, eine ruhige Gewohnheit zu entwickeln: Datei ausführen, Traceback lesen, eine Sache beheben und erneut testen. Am Ende dieser Lektion sollten Sie in der Lage sein: • den Traceback zu nutzen, um die tatsächliche Zeile zu finden, die fehlgeschlagen ist, • in einfachen Worten zu erklären, warum ein `NameError` auftritt, • einen Fehler nach dem anderen zu beheben, anstatt zufällige Teile des Skripts zu ändern.
Wo der Code hingehört
- Definieren Sie Farb- und Positionsvariablen oben.
- Erstellen Sie die Logik zum Zeichnen oder Platzieren von Formen in der Mitte.
- Geben Sie die Ausgabe (Druck, Canvas, SVG oder gestylter Block) am Ende aus.
Befehlsreferenz
- Lesen Sie zuerst die letzte Zeile des Tracebacks; sie nennt Ihnen normalerweise den tatsächlichen Fehlertyp und die genaue Zeile.
- Wenn Sie einen `NameError` sehen, suchen Sie nach einer Variable, die falsch geschrieben, nie erstellt oder nur an einer Stelle umbenannt wurde.
- Beheben Sie ein Problem, führen Sie die Datei erneut aus und gehen Sie erst dann zum nächsten Problem über.
- Raten Sie nicht blind; lassen Sie sich von der Fehlermeldung bei Ihrer nächsten Bearbeitung leiten.
Schritt-für-Schritt-Anleitung
- Führen Sie das Skript einmal ohne Änderungen aus und lesen Sie den Traceback langsam von unten nach oben.
- Finden Sie die Zeile, die den `NameError` verursacht hat, und ersetzen Sie `username` durch `learner_name`.
- Führen Sie die Datei erneut aus und bestätigen Sie, dass die Begrüßung nun korrekt ausgegeben wird.
- Nachdem das funktioniert, setzen Sie `learner_name = None` absichtlich und führen Sie die Datei erneut aus, um einen anderen Fehler zu sehen.
- Stellen Sie den gültigen String wieder her und schreiben Sie eine kurze Notiz darüber, was sich zwischen den beiden Fehlern geändert hat.
Übungsaufgaben
- Erzeugen Sie absichtlich einen zweiten `NameError`, indem Sie einen Variablennamen nur an einer Stelle ändern, und beheben Sie ihn dann.
- Erklären Sie in eigenen Worten, warum `build_greeting(username)` fehlschlug, bevor die Funktion überhaupt korrekt ausgeführt werden konnte.
- Fügen Sie eine einfache Schutzmaßnahme hinzu, die verhindert, dass die Funktion nach Abschluss der Debugging-Schritte einen leeren String akzeptiert.
Coding-Challenges
- Speichern Sie die Begrüßung zuerst in einer Variable und geben Sie sie erst dann aus, wenn Sie sicher sind, dass die Funktion erfolgreich war.
- Erstellen Sie eine kleine Checkliste, die Sie in zukünftigen Debugging-Sitzungen befolgen können: Fehlertyp, Datei, Zeile, Variable, erneuter Durchlauf.
Kleine Übungsaufgaben
- Kopieren Sie die genaue `NameError`-Meldung in Ihre Notizen.
- Sagen Sie laut, welche Variable existiert und welche nicht, bevor Sie den Code korrigieren.
- Behalten Sie einen Satz für sich: `Ein Traceback ist Information, kein Desaster.`
Häufiger Fehler
Mixing x and y axes or using wrong coordinate origin causes shapes to appear in unexpected places.
Mini-Challenge aus der Praxis
Draw one square, one triangle, and one circle, then move X marker 2 steps right and 1 step down.