Dreißig Übungen zu Fehlermeldungen — vom Lesen des Tracebacks über die Fehlerarten bis zur Fehlersuche.
Dein Fortschritt:
0 / 0 Aufgaben
1
Übungsaufgaben
Dreißig Übungen in gemischter Reihenfolge — du klickst, ziehst, ordnest, rechnest und knobelst. Jede Übung gibt dir sofort eine Rückmeldung, und zu jeder Aufgabe gibt es zwei gestufte Tipps: Der erste zeigt die Richtung, der zweite den entscheidenden Schritt. Die Chips zeigen das Anforderungsniveau: AFB I heißt wiedergeben und direkt anwenden, AFB II selbst entscheiden und verknüpfen, AFB III begründen, beurteilen oder eine Falle durchschauen. Aufgaben mit dem Chip Mix verbinden Wissen aus früheren Unterkapiteln, bei Trick steckt eine Falle drin. Fährst du über ein unterstrichenes Arbeitswort, siehst du, was es genau von dir verlangt.
A1
Was zeigt die Konsole?
AFB II
Vermute, was die Konsole bei diesem Programm anzeigt, und wähle die passende Anzeige.
Klicke die passende Karte an und prüfe dann. Mit der Tastatur: Tab zur Karte, Enter auswählen.
Die Zeilen 1 bis 3 laufen und schreiben Start und 14. In Zeile 4 teilt das Programm durch null und bricht ab, deshalb erscheint Ende nicht mehr. Ein SyntaxError käme vor dem Start, und dann stünde nicht einmal Start in der Konsole.
Lies die Zeilen der Reihe nach und notiere, was jede ausgibt.
Nach dem Fehler läuft nichts mehr; die Meldung erscheint unter den Ausgaben der Zeilen, die schon liefen.
A2
Wie viele Zeilen erscheinen?
AFB II
Vergleiche in jeder Zeile die beiden Programme: Wie viele Ausgabezeilen stehen in der Konsole, bevor es zu Ende ist oder ein Fehler das Programm abbricht? Setze das passende Zeichen.
Wähle in jeder Zeile, wie die linke Seite zur rechten steht, und prüfe dann alle auf einmal. Mit der Tastatur: ←/→ wählt, ↑/↓ wechselt die Zeile, Enter prüft.
Programm linksProgramm rechts
print("A") print("B") print(5 / 0)
print("A") print(5 / 0) print("B")
x = int("12") print(x) print(int("zwölf"))
print("Start") print(7 // 0)
print("1" + 2) print(3)
print(1) print("2" + 3)
print("A") print("B"
print("A") print("B") print(1 / 0)
print(8 / 2) print(8 // 2) print(8 % 2)
print(8 / 2) print(8 / 0)
Python gibt Zeilen aus, bis der erste Fehler auftritt. Bei einem SyntaxError läuft aber gar nichts: Auch das erste print kommt nicht zur Ausführung. 2 > 1 | 1 = 1 | 0 < 1 | 0 < 2 | 3 > 1.
Zähle bei jedem Programm die print-Zeilen vor dem ersten Fehler.
Eine verletzte Schreibregel verhindert den Start: Dann erscheint nicht einmal die Zeile davor.
A3
Zeile und Fehlerart
AFB I
Stelle in der Tabelle dar, welche Fehlerart Python bei jeder Zeile meldet. Trage den Namen der Fehlerart ein.
Trage in jedes leere Feld den Namen der Fehlerart ein, z. B. TypeError — Enter prüft alle auf einmal.
Programmzeile
Fehlerart
print(Hi)
print("Hi" + 1)
int("Hi")
print(5 / 0)
print("Hi"
print(Hi): Hi ist kein Text und keine Variable (NameError). "Hi" + 1: Text plus Zahl (TypeError). int("Hi"): nicht umwandelbar (ValueError). 5 / 0: Division durch null (ZeroDivisionError). Fehlende Klammer: SyntaxError.
Der Name der Fehlerart verrät schon viel: Syntax, Name, Type, Value.
Division durch null hat einen eigenen langen Namen mit Zero am Anfang.