Übung 8 – Debugging: Fehler finden und beheben

Ziel dieser Übung

Sie lesen Fehlermeldungen, finden Fehler gezielt und beheben sie – mit VS Code, print() und bei Bedarf mit KI.

1. Eine Fehlermeldung lesen

nmae = "Ada"
print(name)
Traceback (most recent call last):
  File "hallo.py", line 2, in <module>
    print(name)
          ^^^^
NameError: name 'name' is not defined
  1. Ganz unten lesen: Art des Fehlers (NameError) und Beschreibung.
  2. Zeilennummer suchen: line 2.
  3. Die Markierung ^^^^ zeigt auf die Stelle.
FehlerTypische Ursache
SyntaxErrorKlammer oder Anführungszeichen vergessen, Tippfehler in der Schreibweise
NameErrorTippfehler im Namen einer Variablen oder Funktion
TypeErrorDatentypen gemischt, z. B. Zahl und Text
ValueErrorText lässt sich nicht in eine Zahl umwandeln
IndentationErrorfalsch eingerückt – Zeilen beginnen ganz links

2. So gehen Sie vor

3. Aufgaben: Finden und beheben Sie die Fehler

Kopieren Sie jedes Programm in VS Code, führen Sie es aus und reparieren Sie es, bis es richtig funktioniert. Erst die Fehlermeldung lesen, dann die Lösung aufklappen.

Vergessene Klammern

Aufgabe 1 Debugging

name = input("Gib deinen Namen ein: ")
print("Hallo, " + name
Lösung anzeigen

Die schließende Klammer von print( fehlte.

name = input("Gib deinen Namen ein: ")
print("Hallo, " + name)

Aufgabe 2 Debugging

zahl1 = int(input("Gib die erste Zahl ein: ")
zahl2 = int(input("Gib die zweite Zahl ein: "))
ergebnis = zahl1 * zahl2
print(f"{zahl1} * {zahl2} = {ergebnis}")
Lösung anzeigen

In Zeile 1 fehlte die zweite schließende Klammer – für int(. Das Zeichen ^ in der Fehlermeldung zeigt genau auf die Klammer, die nie geschlossen wurde.

zahl1 = int(input("Gib die erste Zahl ein: "))
zahl2 = int(input("Gib die zweite Zahl ein: "))
ergebnis = zahl1 * zahl2
print(f"{zahl1} * {zahl2} = {ergebnis}")

Aufgabe 3 Debugging

eingabe1 = input("Gib eine Zahl ein: ")
eingabe2 = input("Gib eine andere Zahl ein: ")
zahl1 = int eingabe1)
zahl2 = float(eingabe2)
ergebnis = zahl1 * (zahl2 + 10
print(f"{zahl1} * ({zahl2} + 10) = {ergebnis}")
Lösung anzeigen

Zwei Klammern fehlten: bei int(eingabe1) und am Ende von (zahl2 + 10).

eingabe1 = input("Gib eine Zahl ein: ")
eingabe2 = input("Gib eine andere Zahl ein: ")
zahl1 = int(eingabe1)
zahl2 = float(eingabe2)
ergebnis = zahl1 * (zahl2 + 10)
print(f"{zahl1} * ({zahl2} + 10) = {ergebnis}")

Tippfehler

Aufgabe 4 Debugging

zahl = input("Gib eine Zahl ein: ")
resultat = intt(zahl) + 10
print(resultat)
Lösung anzeigen

intt gibt es nicht – gemeint ist int.

zahl = input("Gib eine Zahl ein: ")
resultat = int(zahl) + 10
print(resultat)

Aufgabe 5 Debugging

zahl_eins = int(input("Gib die erste Zahl ein: "))
zahl_zwei = int(input("Gib die zweite Zahl ein: "))
ergebnis = zall_eins + zahl_zwei
print("Das Ergebnis ist:", ergebnis)
Lösung anzeigen

zall_eins statt zahl_eins. Python kennt nur Namen, die vorher angelegt wurden.

zahl_eins = int(input("Gib die erste Zahl ein: "))
zahl_zwei = int(input("Gib die zweite Zahl ein: "))
ergebnis = zahl_eins + zahl_zwei
print("Das Ergebnis ist:", ergebnis)

Falscher Datentyp

Aufgabe 6 Debugging

zahl1 = float(input("Erste Zahl: "))
zahl2 = input("Zweite Zahl: ")
summe = zahl1 + zahl2
print("Die Summe ist:", summe)
Lösung anzeigen

Die zweite Eingabe war noch Text. Auch sie braucht float().

zahl1 = float(input("Erste Zahl: "))
zahl2 = float(input("Zweite Zahl: "))
summe = zahl1 + zahl2
print("Die Summe ist:", summe)

Logikfehler: Das Programm läuft – aber rechnet falsch

Aufgabe 7 Debugging

note1 = float(input("Erste Note: "))
note2 = float(input("Zweite Note: "))
durchschnitt = note1 + note2 / 2
print(f"Ihr Durchschnitt ist {durchschnitt}.")
Lösung anzeigen

Bei 2 und 3 kam 3.5 heraus statt 2.5. Punkt vor Strich: Python teilte nur note2 durch 2. Die Klammern fehlten.

note1 = float(input("Erste Note: "))
note2 = float(input("Zweite Note: "))
durchschnitt = (note1 + note2) / 2
print(f"Ihr Durchschnitt ist {durchschnitt}.")

Alles gemischt

Aufgabe 8 Debugging

# Zwei Zahlen einlesen
erste_zahl = float(input("Erste Zahl: "))
zweite_zahl = float(input("Zweite Zahl: ")
# Produkt und Quotient berechnen
produkt = erste_zahl * zweite_zahl
quotient = erste_zahl / zweite_zahl
print(f"Produkt: {produkt}, Quotient: {quotient}")
# Eine dritte Zahl zum Quotienten addieren
dritte_zahl = floatinput("Dritte Zahl: ")
gesamt = quotient + drtte_zahl
prit(f"Gesamtergebnis: {gesamt}")
Lösung anzeigen

Vier Fehler: Klammer in Zeile 3, floatinput → float(input(…)), drtte_zahl → dritte_zahl, prit → print. Python zeigt immer nur den ersten Fehler – nach jeder Korrektur neu ausführen!

# Zwei Zahlen einlesen
erste_zahl = float(input("Erste Zahl: "))
zweite_zahl = float(input("Zweite Zahl: "))
# Produkt und Quotient berechnen
produkt = erste_zahl * zweite_zahl
quotient = erste_zahl / zweite_zahl
print(f"Produkt: {produkt}, Quotient: {quotient}")
# Eine dritte Zahl zum Quotienten addieren
dritte_zahl = float(input("Dritte Zahl: "))
gesamt = quotient + dritte_zahl
print(f"Gesamtergebnis: {gesamt}")
Geschafft! Halten Sie Ihre Programme und Erkenntnisse im Reflexionstool zu Sitzung 2 fest und übernehmen Sie das Ergebnis in Mahara.