76 lines
2.9 KiB
Python
76 lines
2.9 KiB
Python
"""
|
||
Vorkapitel 00: Python-Detektivin – Finde die 5 versteckten Fehler!
|
||
==================================================================
|
||
|
||
In diesem Skript haben sich 5 typische Python-Fehler eingeschlichen.
|
||
Führe das Skript mit 'python3 aufgabe.py' aus, lies die Fehlermeldungen
|
||
und behebe die Fehler der Reihe nach von BUG 1 bis BUG 5.
|
||
"""
|
||
|
||
# ==============================================================================
|
||
# BUG 1 & BUG 2: SyntaxError & IndentationError
|
||
# In dieser Funktion fehlen ein Doppelpunkt ':' und die Einrückung stimmt nicht!
|
||
# ==============================================================================
|
||
def berechne_endstand(basis_punkte, bonus)
|
||
gesamt = basis_punkte + bonus
|
||
if bonus > 10:
|
||
gesamt += 5 # Hier ist ein Einrückungsfehler!
|
||
return gesamt
|
||
|
||
|
||
# ==============================================================================
|
||
# BUG 3: NameError
|
||
# Hier hat sich ein Tippfehler bei einem Variablennamen eingeschlichen!
|
||
# ==============================================================================
|
||
def punkte_multiplizieren(spieler_punkte, faktor):
|
||
# Finde den Tippfehler im Variablennamen:
|
||
ergebnis = spiler_punkte * faktor
|
||
return ergebnis
|
||
|
||
|
||
# ==============================================================================
|
||
# BUG 4: TypeError
|
||
# Hier wird versucht, eine Zahl und einen Text mit '+' zusammenzufügen.
|
||
# Tipp: Nutze stattdessen einen sauberen f-String: f"Spieler {name} hat {punkte} Punkte!"
|
||
# ==============================================================================
|
||
def formatierte_ausgabe(name, punkte):
|
||
text = "Spieler " + name + " hat " + punkte + " Punkte!"
|
||
return text
|
||
|
||
|
||
# ==============================================================================
|
||
# BUG 5: Logik-Fehler (Vergleichsoperator)
|
||
# Diese Funktion soll True zurückgeben, wenn ein Spieler 50 ODER MEHR Punkte hat.
|
||
# Aktuell gibt sie bei genau 50 Punkten leider False zurück!
|
||
# ==============================================================================
|
||
def ist_sieger(punkte):
|
||
if punkte > 50:
|
||
return True
|
||
else:
|
||
return False
|
||
|
||
|
||
# ==============================================================================
|
||
# Hauptprogramm zum Ausprobieren:
|
||
# (Führe dieses Skript aus mit: python3 aufgabe.py)
|
||
# ==============================================================================
|
||
if __name__ == "__main__":
|
||
print("🕵️♀️ --- CODE-DETEKTIVIN QUIZ TEST --- 🕵️♀️")
|
||
|
||
# Test 1
|
||
endstand = berechne_endstand(20, 15)
|
||
print(f"Endstand (sollte 40 sein): {endstand}")
|
||
|
||
# Test 2
|
||
multipliziert = punkte_multiplizieren(10, 3)
|
||
print(f"Multipliziert (sollte 30 sein): {multipliziert}")
|
||
|
||
# Test 3
|
||
ausgabe = formatierte_ausgabe("Mia", 50)
|
||
print(f"Formatierte Ausgabe: {ausgabe}")
|
||
|
||
# Test 4
|
||
sieger = ist_sieger(50)
|
||
print(f"Ist 50 Punkte ein Sieg? (sollte True sein): {sieger}")
|
||
|
||
print("\n🎉 Herzlichen Glückwunsch! Alle 5 Bugs wurden erfolgreich behoben!")
|