为什么我需要在输入引号中包含输入?

时间:2015-06-12 02:14:28

标签: python-2.7

我正在使用Python2.7.6并遇到以下问题:

x=eval(input("Enter a number between 0 and 1: "))

这里,输入应该创建一个字符串,但它不会运行,除非我将输入包装在单引号中,请查看以下内容:

x=eval('input("Enter a number between 0 and 1: ")')

有人可以澄清为什么第一个代码没有运行而第二个代码有效吗?真的很令人沮丧......我很感激你的帮助!

1 个答案:

答案 0 :(得分:1)

在Python 2中,input只是evalraw_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: ")