Zum Hauptinhalt springen

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

Mini-QuizWelcher Fehler entsteht bei 5/0?

Null sicher! Als Nächstes: else und finally (kurz und klar).