Как исправить ошибку в коде ZeroDivisionError?

import os

def makeFolders():
    if os.path.exists(r'C:\hesoyam8927163'):
        print(0/0)
    else:
        os.makedirs(r'C:\hesoyam8927163\Chrome')
        os.makedirs(r'C:\hesoyam8927163\Opera')
        os.makedirs(r'C:\hesoyam8927163\Firefox')
        os.makedirs(r'C:\hesoyam8927163\SystemInformation')
        os.makedirs(r'C:\hesoyam8927163\TxtFilesFromDesktop')

Traceback (most recent call last):
  File "main.py", line 28, in <module>
  File "modules\others\folder.py", line 10, in makeFolders
    print(0/0)
ZeroDivisionError: division by zero 

p.s только начинаю изучать питон,можете пожалуйста подробнее указать в чем причина и как исправить?


Ответы (3 шт):

Автор решения: George

Можно проверять переменные с помощью if elif и else

a, b = 1, 0
if b != 0:
    print(a / b)

или можно использовать try except (отлов исключений)

try:
    1 / 0
except ZeroDivisionError:
    print("You cannot divide by zero!")
→ Ссылка
Автор решения: yngdev

Ошибка "ZeroDivisionError" возникает при делении числа или переменной на 0.

a = 0
b = 0
print(a / b)

Output: ZeroDivisionError: division by zero

Исправить её можно простыми способами:

  1. Проверка чисел на то, являются ли они 0 или нет:
a = 0 # a = int(input())
b = 0 # b = int(input())

if b != 0:
    print(a / b)
else:
    print('На ноль делить нельзя!')

  1. Через конструкцию try - except:
a = 0 # a = int(input())
b = 0 # b = int(input())

try:
    print(a / b)
except ZeroDivisionError:
    print('На ноль делить нельзя!')

Поясню по второму пункту. Конструкция try - except предназначена для обработки ошибок. В данном случае, если ошибок не возникает, то код переходит в блок try. Если же есть "ZeroDivisionError", т.е. b = 0, то вместо ошибки вам в терминал выведется фраза: "На ноль делить нельзя"

→ Ссылка
Автор решения: Nenza

Ошибка указывает на то, что делать на ноль нельзя, строка:

print(0/0)

Не понятно, зачем она вообще там, если вы хотите, что бы у вас показывалось сообщение об ошибке и не останавливалась программа, то вместо вышеупомянутой строчки вставьте следующий код:

try:
    print(0/0)
except ZeroDivisionError:
    print("Error")

Ну или же по простому:

print("Error")

Т.К. всегда будет возникать ошибка.

А если вы 'всунули' эту строчку, что бы заполнить пространство блока if, то можно исправить конструкцию таким образом:

if not os.path.exists(r'C:\hesoyam8927163'):
    os.makedirs(r'C:\hesoyam8927163\Chrome')
    os.makedirs(r'C:\hesoyam8927163\Opera')
    os.makedirs(r'C:\hesoyam8927163\Firefox')
    os.makedirs(r'C:\hesoyam8927163\SystemInformation')
    os.makedirs(r'C:\hesoyam8927163\TxtFilesFromDesktop')
→ Ссылка