MINT üben

Fehlermeldungen verstehen

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.

Programm
print("Start")
zahl = int("7")
print(zahl * 2)
print(zahl / 0)
print("Ende")
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.
  • 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.
ProgrammzeileFehlerart
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.