ZeroDivisionError: division by zero
You’re dividing a number by zero, which is mathematically undefined.
Fix 1: Check before dividing
# ❌ Crashes if total is 0
average = sum_values / total
# ✅ Check first
if total != 0:
average = sum_values / total
else:
average = 0
Fix 2: Use a default with try/except
try:
result = a / b
except ZeroDivisionError:
result = 0 # or float('inf'), or None
Fix 3: Common scenarios that cause it
Empty list average:
numbers = []
# ❌ len([]) is 0
average = sum(numbers) / len(numbers)
# ✅ Check for empty
average = sum(numbers) / len(numbers) if numbers else 0
Percentage calculation:
# ❌ total_users could be 0
percentage = (active_users / total_users) * 100
# ✅ Guard against zero
percentage = (active_users / total_users) * 100 if total_users else 0
Modulo operator too:
# ❌ Also raises ZeroDivisionError
result = 10 % 0
# ✅ Check first
result = 10 % divisor if divisor != 0 else 0