Logikfehler
Das tückische Problem
punkte = 10
bonus = 5
print(punkte - bonus) # wollte + ?
Kein roter Fehler – aber falsches Ergebnis. Das ist ein Logikfehler.
Weitere Beispiele
# Reihenfolge falsch
print("Schuhe an")
print("Socken an")
# Bedingung falsch herum
alter = 15
if alter < 12:
print("Herein!") # Oops
Wie finden?
- Erwartetes Ergebnis aufschreiben
- Mit echter Ausgabe vergleichen
- Zwischenergebnisse printen
- Bedingungen und Reihenfolge prüfen
Rate mal!
summe = 0
for i in range(3):
summe = i
print(summe)
Wollte jemand 0+1+2?
Auflösung
Dann bräuchte man summe = summe + i. Hier bleibt am Ende 2.
Probiere es selbst
Experiment 1
Baue absichtlich * statt +.
Experiment 2
Finde den Bug durch print-Debugging.
Experiment 3
Schreibe den erwarteten Wert vor dem Test auf.
Fehlerdetektiv
n = 5
if n > 10 or n > 0:
print("immer?")
Lösung
n > 0 macht die Bedingung für fast alle positiven Zahlen wahr.
Prüfe, ob die Logik zur Absicht passt.
Übungen
Level 1
Definiere Logikfehler.
Level 2
Korrigiere eine falsche Summe in einer Schleife.
Level 3
Noten-if mit falscher Reihenfolge der Grenzen reparieren.
Level-2-Lösung
summe = 0
for i in range(1, 4):
summe = summe + i
print(summe) # 6
Mini-Quiz
Logik jagen! Mini-Projekt: Fehlerdetektiv.