MINT lernen

Fehlermeldungen verstehen

Zehn interaktive Übungen zu Fehlermeldungen und Fehlerarten — von AFB I bis AFB III.

Dein Fortschritt:
0 / 0 Aufgaben
1

Übungsaufgaben

Zehn interaktive Übungen zum Klicken, Ziehen und Knobeln — von AFB I bis AFB III. Jede Übung gibt dir sofort Rückmeldung.

A1
Fehlerarten-Memory
AFB I

Finde zu jeder Fehlerart eine typische Ursache.

Decke zwei Karten auf, die zusammengehören. Mit der Tastatur: Tab zur Karte, Enter aufdecken, Pfeiltasten zum Wandern.
Der Name der Fehlerart verrät schon viel: Syntax = Schreibweise, Name = Bezeichner, Type = Datentyp, Value = Wert.
A2
Stimmt's? — Fünferserie
AFB I

Fünf Behauptungen über Fehlermeldungen.

5 Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5

Syntaxfehler: vor dem Start. Alle anderen: erst beim Ausführen der Zeile. Logische Fehler: nie.
A3
Lückentext mit Wortbank
AFB I

So sieht eine Fehlermeldung aus. Setze die Begriffe ein — zwei Wörter bleiben übrig.

Traceback (most recent call last):
  File "kiosk.py", line 4, in <module>
    summe = summe + preis
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Wort anklicken, dann Lücke anklicken (oder umgekehrt) — mit Tab und Enter geht es genauso. Ein Klick auf eine gefüllte Lücke legt das Wort zurück.

Die Fehlermeldung heißt auch . In ihrer Zeile steht die , hier TypeError, gefolgt von einer Beschreibung. Darüber verrät „line 4“ die . Fehler, bei denen das Programm ohne Meldung durchläuft, aber Falsches ausgibt, heißen Fehler.

Von unten nach oben lesen: erst die Fehlerart, dann die Zeile.
A4
Welche Fehlerart?
AFB II

Welche Fehlermeldung zeigt Python bei diesen Programmen?

Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1SyntaxError
2NameError
3TypeError
4ValueError
5ZeroDivisionError
Auch float("2,5") ist ein ValueError: Python kennt nur den Dezimalpunkt. Der Rest bei % 0 ist genauso unmöglich wie das Teilen durch 0.
A5
Einen Traceback lesen
AFB II

Beim Programm kiosk.py erscheint nach der Eingabe 3 diese Meldung. Welche Aussagen sind richtig?

Traceback (most recent call last):
  File "kiosk.py", line 4, in <module>
    summe = summe + preis
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
int + str geht nicht: summe ist 0, preis ist der Text "3". Da es kein SyntaxError ist, lief das Programm bis Zeile 4.
A6
Meldung und Reparatur
AFB II

Verbinde jede Fehlermeldung mit der passenden Reparatur.

A7
Rechenkette: Wo bricht es ab?
AFB II

Eingegeben werden 6 und 0.

a = int(input("a? "))b = int(input("b? "))print("Summe:", a + b)print("Differenz:", a - b)print("Produkt:", a * b)print("Quotient:", a / b)print("Rest:", a % b)
Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
  1. In welcher Zeile bricht das Programm ab?
  2. Wie viele Ergebniszeilen stehen vorher in der Konsole?
  3. Welche Zahl steht in der Zeile „Produkt:“?
Summe, Differenz und Produkt funktionieren auch mit b = 0 (6 · 0 = 0). Erst a / b in Zeile 6 löst den ZeroDivisionError aus — Zeile 7 wird nie erreicht.
A8
Trick: Was wird zuerst gemeldet?
AFB III

Das Programm wird gestartet; eingegeben würde die Zahl 4. Klicke genau die Zeile an, die in der ersten Fehlermeldung genannt wird.

Klicke genau eine Zeile an: die, die Python als Erstes meldet.
Trick: Zeile 3 würde bei der Eingabe 4 durch 0 teilen — aber so weit kommt es nicht. Syntaxfehler prüft Python vor dem Start, deshalb erscheint nicht einmal „Start“.
A9
Neles vier Programmläufe
AFB III

Nele startet ihr Programm (Eingabe 4), liest die Meldung, behebt nur diesen Fehler und startet neu. Bringe die Ergebnisse ihrer Läufe in die richtige Reihenfolge.

preis = 3.5anzahl = int(input("Anzahl? "))gesamt = preis * anzahlprint("Gesamt: " + gesamt)rabat = gesamt * 0.1print("Rabatt:", rabatt)print("Zu zahlen:", gesamt + rabatt
Ziehe die Karten in die richtige Reihenfolge — mit der Tastatur: ↑/↓ verschiebt, Shift+↑/↓ wechselt nur den Fokus.
1SyntaxError in Zeile 7 — die Klammer ist nicht geschlossen
2TypeError in Zeile 4 — Text + float
3NameError in Zeile 6 — rabatt ist unbekannt (Zeile 5: rabat)
4keine Meldung — aber „Zu zahlen“ ist falsch, weil der Rabatt addiert statt abgezogen wird
Syntaxfehler kommen vor dem Start, dann folgen die Laufzeitfehler von oben nach unten. Der logische Fehler (+ statt −) bleibt ganz ohne Meldung übrig.
A10
Mix: Der stille Fehler
AFB III

Das Programm soll den Durchschnitt dreier Noten berechnen. Eingegeben werden 1, 2 und 6. Was gibt es aus?

a = int(input("Note 1? "))b = int(input("Note 2? "))c = int(input("Note 3? "))schnitt = a + b + c / 3print(schnitt)
Tippe die Ausgabe genau so ein, wie Python sie zeigt — Enter prüft direkt.
Punkt vor Strich: Nur c wird durch 3 geteilt, also 1 + 2 + 2.0 = 5.0. Richtig wäre (a + b + c) / 3 = 3.0. Python meldet diesen logischen Fehler nicht.