Понимание ошибки ValueEr: «Неверные числа» в python - PullRequest
0 голосов
/ 03 мая 2020

У меня следующий вопрос:

Определите функцию с именем exce_sum, в которой вы возвращаете сумму двух аргументов. Но если оба аргумента равны 0, функция должна вызвать исключение, говорящее «Недопустимые числа». иметь класс ValueError (), а тип возвращаемого значения исключения должен быть строкой. Используйте try и кроме.

Я написал следующий код:

def exce_sum(x,y):
    if x==0 and y==0:
        raise ValueError("Invalid numbers")
    try:
        z=x+y
        return(z)
    except:
        return("the return type of the exception must be a string")

Когда я пишу функцию exce_sum (0,0), я получаю ошибку ValueError: Invalid numbers, а не ValueError: "Invalid numbers". Тем не менее, я не знаю, как получить ошибку ValueError: «Неверные номера». Заранее благодарю за помощь

Ответы [ 3 ]

1 голос
/ 03 мая 2020

Измените это на

if x==0 and y==0:
        raise ValueError("Invalid numbers")

это

if x==0 and y==0:
        raise ValueError('"Invalid numbers"')
0 голосов
/ 05 мая 2020

Решением для ваших вопросов может быть

def exce_sum (num1, num2):

try:
    if (num1 == 0 and num2 == 0):
        raise ValueError("Invalid Numbers")
    else:
        return num1 + num2

except ValueError as error:
    print(error)

exce_sum (0,0)

0 голосов
/ 03 мая 2020

Я не думаю, что вы должны печатать двойные кавычки в любом случае :) Когда исключения выводятся на консоль, сообщение обычно не заключено в двойные кавычки.


Следующее должно сделать уловка (у вас был ненужный блок попытки-исключения):

def exce_sum(x, y):

    if x == 0 and y == 0:
        raise ValueError("Invalid numbers") # if you still want the quotes use '"Invalid numbers"'

    z = x + y
    return str(z)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...