← Все вопросы
ZeroDivisionError: division by zero — что значит и как избежать?
9
Падает ZeroDivisionError: division by zero. Понятно что делю на ноль, но как красиво это обработать, чтобы программа не валилась?
3 ответа
13
✓ Принятый ответ — помог автору
Проверяй делитель перед делением: if b != 0:.
7
Если делишь на сумму/счётчик, который иногда пустой — например среднее по пустому списку, — то проще проверить заранее:
nums = []
sred = sum(nums) / len(nums) if nums else 0
Тернарник тут спасает от деления на len([]) == 0. Для целочисленного // и остатка % правило то же — на ноль нельзя.
6
Либо проверка if b:, либо try/except ZeroDivisionError.
Константин Ермаков if b сработает и для 0.0, и для None — норм вариант · 21 месяц назад
Ваш ответ
Войдите, чтобы ответить на вопрос.