← Все вопросы

ZeroDivisionError: division by zero — что значит и как избежать?

Задан 21 месяц назад721 просмотров3 ответа
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 месяц назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект