我在这里发现了一个非常好奇的现象。我已经实例化了一个全局变量(usrPIN
),并且我将它与局部变量(c
)进行了比较。当我输入一个值(在这种情况下,四个零)时,该值被切断,创建一个字符长的字符串。为什么呢?
usrPIN
...
def login():
global usrPIN
...
c = str(input("Enter PIN"))
print usrPIN
print str(c)
if usrPIN == c:
mainMenu()
else:
print "Incorrect PIN"
login()
到底是怎么回事?
答案 0 :(得分:3)
在Python 2.x input()
中进行自动评估。这意味着当我这样做时:
input(0.2757)
Python评估它是一个浮点数。类似地,在你的情况下,0000
被评估为一个整数,并且因为四个零与一个零相同,所以它会将它们剁掉。在Python 2.x中,通常建议使用raw_input()
来保证安全。
注意:Python 2.x中的raw_input()
始终返回一个字符串。