我注意到这里有一个非常奇怪的现象。我已实例化了全局变量(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 - 为什么我的字符串会删除多个字符?-LMLPHP

到底是怎么回事?

最佳答案

在Python 2.x中,input()进行自动评估。这意味着我什么时候做:

input(0.2757)


Python将其评估为浮点数。类似地,在您的情况下,0000被视为整数,并且由于四个零与一个零相同,因此会将它们砍掉。为了安全起见,通常建议在Python 2.x中使用raw_input()

注意:Python 2.x中的raw_input()始终返回字符串。

07-24 09:38