对于Python 2,您raw_input
不需要input
。前者会读一行。后者将读取一行并尝试执行它,如果您不希望代码被输入数据的人破坏,则不建议这样做。
def sety99():
global y
y = 99
y = 0
input ("Enter something: ")
print y
如果您在Python 2下运行该代码并输入sety99()
,则99
即使您的代码(在其正常执行流中)没有刻意将其设置y
为除零以外的任何值(在函数中也是如此,但该函数永远不会),输出仍将由您的代码明确调用)。这样做的原因是该input(prompt)
呼叫等同于eval(raw_input(prompt))
。
详细信息请参见此处。