ZeroDivisionError
Разбираем, почему нельзя делить на ноль и как обезопасить программу.
Почему деление на ноль запрещено
Делить на ноль нельзя не только в Python, но и в математике: у такого действия нет осмысленного результата. Поэтому при попытке разделить число на ноль программа останавливается и сообщает ZeroDivisionError. Это защита, а не каприз: без неё результат был бы бессмысленным.
Откуда берётся ноль
Редко кто пишет деление на ноль нарочно. Обычно ноль появляется в переменной незаметно: пользователь ввёл 0, список оказался пустым и его длина равна нулю, или промежуточный расчёт дал ноль. Ошибка всплывает именно в тот момент, когда этот ноль попадает в знаменатель.
Как защититься
Самый простой приём — перед делением проверить, что знаменатель не равен нулю, и предусмотреть отдельный ответ для этого случая: например, вывести сообщение или вернуть ноль. Так программа продолжит работу вместо аварийной остановки. Это особенно важно, когда данные приходят от пользователя.
Частые вопросы
Что значит float division by zero? То же деление на ноль, только с дробными числами. Причина и решение те же.
Как реже встречать такие ошибки? Продумывать «граничные» случаи: пустой ввод, ноль, отрицательные числа. Привычка проверять входные данные приходит с практикой — например, в тренажёре Дрон Кодер, где сразу видно, как программа реагирует.
Начать игру бесплатно