Как исправить ошибку в коде 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 шт):
Можно проверять переменные с помощью 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!")
Ошибка "ZeroDivisionError" возникает при делении числа или переменной на 0.
a = 0
b = 0
print(a / b)
Output: ZeroDivisionError: division by zero
Исправить её можно простыми способами:
- Проверка чисел на то, являются ли они 0 или нет:
a = 0 # a = int(input())
b = 0 # b = int(input())
if b != 0:
print(a / b)
else:
print('На ноль делить нельзя!')
- Через конструкцию 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, то вместо ошибки вам в терминал выведется фраза: "На ноль делить нельзя"
Ошибка указывает на то, что делать на ноль нельзя, строка:
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')