Division durch null
Das Problem
print(10 / 0) # ZeroDivisionError
Vorher prüfen
a = 10
b = 0
if b != 0:
print(a / b)
else:
print("Teilen durch 0 geht nicht.")
Mit except
try:
print(10 / 0)
except ZeroDivisionError:
print("Division durch 0 abgefangen.")
Rate mal!
Was ist robuster für Anfänger-Rechner?
Auflösung
Beides geht. Vorher prüfen ist oft klarer; except ist gut bei unerwarteten Fällen.
Probiere es selbst
Experiment 1
Erzeuge ZeroDivisionError (kurz).
Experiment 2
if-Schutz.
Experiment 3
try/except-Schutz.
Fehlerdetektiv
a = int(input("a: "))
b = int(input("b: "))
print(a / b)
Lösung
Absichern gegen ValueError und b == 0.
Übungen
Level 1
Sicher teilen mit if.
Level 2
Sicher teilen mit except.
Level 3
Funktion teile(a, b) return Ergebnis oder None.
Level-3-Lösung
def teile(a, b):
if b == 0:
return None
return a / b
print(teile(10, 2))
print(teile(10, 0))
Mini-Quiz
Null sicher! Als Nächstes: else und finally (kurz und klar).