我正在尝试在Python中实现try异常,当输入char / string而不是int时,捕获异常。
然而,当输入字母时,' a'程序崩溃,返回以下错误:
num = input('Enter integer number: ') File "<string>", line 1, in
<module> NameError: name 'a' is not defined
这是我的代码:
if __name__ == '__main__': #main function
num = input('Enter integer number: ')
try:
num = int(num)
except ValueError:
print "Invalid input."
答案 0 :(得分:1)
您正试图抓住ValueError
,但该功能正在提升NameError
。所以你没有抓住它。尝试:
if __name__ == '__main__': #main function
num = input('Enter integer number: ')
try:
num = int(num)
except Exception as e:
print "Invalid input: {}".format(e.message)
答案 1 :(得分:1)
解释给定的输入。
https://docs.python.org/2/library/functions.html?highlight=input#input
因此,如果您将输入作为&#34; a&#34; ,则会将其解释为字符串并继续。 因为您将值设为 a ,所以它需要一个名为 a 的变量。
如果您直接想要使用用户输入,请按照@Lafexlos的评论中的建议使用 raw_input 。