Zum Hauptinhalt springen

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?

  1. Erwartetes Ergebnis aufschreiben
  2. Mit echter Ausgabe vergleichen
  3. Zwischenergebnisse printen
  4. 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

Mini-QuizWas ist typisch fuer Logikfehler?

Logik jagen! Mini-Projekt: Fehlerdetektiv.