我正在使用Python2.7.6并遇到以下问题:
x=eval(input("Enter a number between 0 and 1: "))
这里,输入应该创建一个字符串,但它不会运行,除非我将输入包装在单引号中,请查看以下内容:
x=eval('input("Enter a number between 0 and 1: ")')
有人可以澄清为什么第一个代码没有运行而第二个代码有效吗?真的很令人沮丧......我很感激你的帮助!
答案 0 :(得分:1)
在Python 2中,input
只是eval
和raw_input
的组合。实际上,您的第一行是:
x=eval(eval(raw_input("Enter a number between 0 and 1: ")))
键入123
将导致第一次调用eval
将整数 123
传递到第二个eval
函数,该函数会抛出不错的错误:
TypeError: eval() arg 1 must be a string or code object
键入'123'
将使字符串无需修改,因为eval("'123'") == '123'
。由于您不想评估任何内容,只需使用raw_input
:
x = raw_input("Enter a number between 0 and 1: ")