python用户输入错误int vs string

时间:2012-10-31 13:47:25

标签: python input

我试图搜索此错误,但我没有找到它,所以这里是:

我尝试在linux中运行的python 3脚本中输入输入,该脚本只能是0-5。 我使用以下代码执行此操作:

    while True:
        type = input("Please choose a type:\n1) a\n2) b\n3) c\n4) d\n0) EXIT\n"))

        if type == "0":
            sys.exit()

        elif type == "1" or type == "2" or type == "3" or type == "4":
            print("You entered: %s" %type )
            break

        else:
            os.system("clear")
            print("Input entered is invalid, please try again.\n")

当我输入数字时,程序运行正常,但是当我输入一个字母时它会崩溃。 请帮忙:(

Traceback (most recent call last):
  File "test.py", line 21, in <module>
    type = input("Please choose a type:\n1) a\n2) b\n3) c\n4) d\n0) EXIT\n"))   
  File "<string>", line 1, in <module>
NameError: name 'h' is not defined

1 个答案:

答案 0 :(得分:1)

input相当于eval(raw_input(prompt))

表示您的输入被解释。这意味着数字,函数,var将起作用,但不起作用。

请改用raw_input。 (见http://docs.python.org/2/library/functions.html#raw_input

Nota:这是有效的python 2,你提到python 3.但是,我认为你实际上是在使用python 2,因为你的提示以\ n结尾,它包含在python 3中,并且当你的脚本工作时python 3