Python ValueError异常 - 名称" a"未定义错误

时间:2016-04-05 08:25:36

标签: python python-2.7 python-3.x try-catch

我正在尝试在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."

2 个答案:

答案 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)

来自文档input()的

解释给定的输入。

https://docs.python.org/2/library/functions.html?highlight=input#input

因此,如果您将输入作为&#34; a&#34; ,则会将其解释为字符串并继续。 因为您将值设为 a ,所以它需要一个名为 a 的变量。

如果您直接想要使用用户输入,请按照@Lafexlos的评论中的建议使用 raw_input