Vorkapitel 00

Python Fehlersuche & Grundlagen 🔍🕵️‍♀️

Lerne, wie du Fehlermeldungen richtig liest, Einrückungsfehler behebst und Bugs wie eine echte Detektivin aufspürst.

📂 Dateien dieser Einheit:
📄 aufgabe.py (Startercode) 🧪 test_aufgabe.py (Tests) 💡 musterloesung.py (Lösung) 📖 README.md

1. Die wichtigste Regel: Keine Panik bei Fehlern!

Jeder Programmierer auf der Welt – selbst bei Google oder Apple – schreibt täglich dutzende Fehler.

💡 Der Computer ist dein Assistent, kein Richter:
Wenn Python eine rote Fehlermeldung (einen sogenannten Traceback) anzeigt, ist das nichts Schlimmes. Der Computer sagt dir damit nur: "Hey, hier verstehe ich in Zeile X etwas noch nicht ganz – kannst du mir kurz helfen?"

Wie liest man einen Traceback? (Die Unten-nach-Oben-Regel)

Ein Traceback kann lang und einschüchternd wirken. Doch das Geheimnis ist: Lies immer ganz unten!

Beispiel einer Fehlermeldung
Traceback (most recent call last):
  File "aufgabe.py", line 12, in berechne_rabatt
    ergebnis = preis * rabatt_prozent
TypeError: can't multiply sequence by non-int of type 'float'
▲                                  ▲
1. ART DES FEHLERS                 2. DIE ERKLÄRUNG

Ganz unten steht:
1. Um welchen Fehler handelt es sich? (z.B. TypeError)
2. Was genau ist schiefgelaufen? (z.B. Text mit Kommazahl multipliziert)
3. Direkt in der Zeile darüber steht die Dateiname und Zeilennummer (z.B. line 12)!

2. Die 4 häufigsten Python-Fehler im Überblick

1. IndentationError (Einrückungsfehler)

In Python haben Einrückungen eine feste Bedeutung. Alles, was in einer Funktion, Schleife oder Bedingung steht, muss genau 4 Leerzeichen eingerückt sein.

Vergleich: Einrückung
# ❌ Falsch:
def begruessung(name):
print("Hallo", name)  # 💥 IndentationError: expected an indented block

# ✅ Richtig:
def begruessung(name):
    print("Hallo", name)  # 4 Leerzeichen eingerückt!
2. SyntaxError (Tippfehler & fehlende Doppelpunkte)

Häufig vergessen: Der Doppelpunkt : am Ende von def, if, else, for oder while, oder eine ungeschlossene Klammer.

Vergleich: Syntax
# ❌ Falsch: Doppelpunkt vergessen
if alter >= 18
    print("Volljährig")  # 💥 SyntaxError: expected ':'

# ✅ Richtig:
if alter >= 18:
    print("Volljährig")
3. NameError (Unbekannter Name / Tippfehler)

Tritt auf, wenn eine Variable oder Funktion aufgerufen wird, die nicht existiert (oder falsch geschrieben wurde).

Vergleich: NameError
spieler_name = "Alex"
print(spielr_name)  # 💥 NameError: name 'spielr_name' is not defined (Tippfehler!)
4. TypeError (Falscher Datentyp)

Tritt auf, wenn man Operationen mit unpassenden Typen versucht (z.B. Zahl an Text anhängen mit + statt f-String).

Vergleich: TypeError
punkte = 100
# ❌ Falsch:
print("Du hast " + punkte + " Punkte!")  # 💥 TypeError: can only concatenate str to str

# ✅ Richtig mit f-String:
print(f"Du hast {punkte} Punkte!")

3. 🕵️‍♀️ Deine Detektiv-Aufgabe in aufgabe.py

In der Datei aufgabe.py findest du ein kleines Programm für ein Quiz-Spiel, in dem sich 5 typische Fehler versteckt haben!

Deine Mission als Code-Detektivin:

💡 Lösungshinweise (Aufklappen bei Bedarf)

🔍 Tipp zur Ausführung im Terminal

Führe das Skript einfach direkt im Terminal aus:

python3 aufgabe.py

Python zeigt dir sofort den ersten Fehler an. Repariere ihn, führe das Skript erneut aus und arbeite dich so Schritt für Schritt durch!

4. 🧪 Detektiv-Prüfung abschließen

Sobald du alle Fehler behoben hast, teste deine Lösung mit:

Terminal
python3 test_aufgabe.py