有没有办法隐藏正确的名称错误消息?
Is there a way to hide a correct Name Error message?
我正在编写一个简单的函数来计算数字的平方根。提示用户提供一个整数。但是,如果他们提供一个字符串——我希望有一条消息 "You did not give me a number"。
查看下面的代码:
def square(n):
"""Takes a square root of a number :rtype : int """
if n == int(n):
return pow(n, 2)
try:
answer = int(input("...."))
except ValueError:
print("You did not give me a number!")
final_answer = "{} squared is {}".format(answer, square(answer))
print(final_answer)
适用于整数:
....9
9 squared is 81
使用字符串:
Traceback (most recent call last):
File , line 28, in <module>
final_answer = "{} squared is {}".format(answer, square(answer))
NameError: name 'answer' is not defined
You did not give me a number!
这个错误很合理,因为没有定义答案。但是,有没有办法只 print/return 异常 "You did not give me a number" 而没有 NameError 消息?
谢谢你的帮助!
您可以在 try/except
的末尾添加一个 else
块:
try:
answer = int(input("...."))
except ValueError:
print("You did not give me a number!")
else:
final_answer = "{} squared is {}".format(answer, square(answer))
print(final_answer)
如果 try
块成功完成,else
块内的代码只会是 运行。这里有一个 link 到 documentation 以获取更多信息。
我正在编写一个简单的函数来计算数字的平方根。提示用户提供一个整数。但是,如果他们提供一个字符串——我希望有一条消息 "You did not give me a number"。
查看下面的代码:
def square(n):
"""Takes a square root of a number :rtype : int """
if n == int(n):
return pow(n, 2)
try:
answer = int(input("...."))
except ValueError:
print("You did not give me a number!")
final_answer = "{} squared is {}".format(answer, square(answer))
print(final_answer)
适用于整数:
....9
9 squared is 81
使用字符串:
Traceback (most recent call last):
File , line 28, in <module>
final_answer = "{} squared is {}".format(answer, square(answer))
NameError: name 'answer' is not defined
You did not give me a number!
这个错误很合理,因为没有定义答案。但是,有没有办法只 print/return 异常 "You did not give me a number" 而没有 NameError 消息?
谢谢你的帮助!
您可以在 try/except
的末尾添加一个 else
块:
try:
answer = int(input("...."))
except ValueError:
print("You did not give me a number!")
else:
final_answer = "{} squared is {}".format(answer, square(answer))
print(final_answer)
如果 try
块成功完成,else
块内的代码只会是 运行。这里有一个 link 到 documentation 以获取更多信息。