我注意到这里有一个非常奇怪的现象。我已实例化了全局变量(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()
到底是怎么回事?
最佳答案
在Python 2.x中,input()
进行自动评估。这意味着我什么时候做:
input(0.2757)
Python将其评估为浮点数。类似地,在您的情况下,
0000
被视为整数,并且由于四个零与一个零相同,因此会将它们砍掉。为了安全起见,通常建议在Python 2.x中使用raw_input()
。注意:Python 2.x中的
raw_input()
始终返回字符串。