#python #exception #error-handling #invalid-characters
#питон #исключение #обработка ошибок #недопустимые символы
Вопрос:
Я застрял с этим домашним заданием:
перепишите следующую программу, чтобы она могла обрабатывать любые недопустимые входные данные от пользователя.
def example():
for i in range(3)
x=eval(input('Enter a number: '))
y=eval(input('enter another one: '))
print(x/y)
я попытался попробовать… за исключением ValueError, но программа по-прежнему не запускается.
Комментарии:
1. Вы пишете, вы пытались
try...except
. Обычно это должно работать. Не могли бы вы добавить свой код? В принципе, вы должны попытаться решить свою домашнюю работу самостоятельно. В противном случае вы ничего не узнаете. Если вы опубликуете свой код и подробную информацию о проблеме, с которой вы столкнулись в своем решении, мы сможем помочь вам лучше.
Ответ №1:
Это потому, что вы, вероятно, не учли ZeroDivisionError
, что вы получаете, когда y = 0! Как насчет
def example():
for i in range(3):
correct_inputs = False
while not correct_inputs:
try:
x=eval(input('Enter a number: '))
y=eval(input('enter another one: '))
print(x/y)
correct_inputs = True
except:
print("bad input received")
continue
Эта функция вычисляет ровно 3 правильных деления x / y!
Если вам нужна хорошая ссылка на continue
operator, пожалуйста, посмотрите здесь
Ответ №2:
def example():
for i in range(3)
try:
x=eval(input('Enter a number: '))
except ValueError:
print("Sorry, value error")
try:
y=eval(input('enter another one: '))
except ValueError:
print("Sorry, value error")`enter code here`
try:
print(x/y)
except ValueError:
print("Sorry, cant divide zero")
Комментарии:
1. этот код будет обрабатывать только ошибку деления на ноль, другие ошибки, например, если пользователь вводит строку, не обрабатываются.