← Все вопросы
ZeroDivisionError: division by zero — как обработать деление на ноль?
7
Считаю среднее, а программа падает с ZeroDivisionError: division by zero. Делитель иногда становится нулём, и всё ломается. Как защититься от деления на ноль в Python?
1 ответ
10
✓ Принятый ответ — помог автору
Ошибка ZeroDivisionError появляется при делении на 0 — в математике это не определено, и Python отказывается считать. Касается и обычного деления /, и целочисленного //, и остатка %.
total = 100
count = 0
print(total / count) # ZeroDivisionError
Типичная ситуация — считаете среднее, а список пустой, поэтому делитель len(lst) равен 0.
Способы защиты:
- Проверка перед делением:
if count != 0:
print(total / count)
else:
print("Делить не на что")
- try/except:
try:
avg = total / count
except ZeroDivisionError:
avg = 0
- Подставить безопасный делитель:
avg = total / count if count else 0
Для среднего по списку: сначала убедитесь, что список не пуст: if nums: avg = sum(nums) / len(nums). Главная мысль — прежде чем делить, убедитесь, что делитель не ноль.
Ваш ответ
, чтобы ответить на вопрос.