为什么我的字符串会删除多个字符?

时间:2015-10-22 15:22:33

标签: python python-2.7

我在这里发现了一个非常好奇的现象。我已经实例化了一个全局变量(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()

enter image description here

到底是怎么回事?

1 个答案:

答案 0 :(得分:3)

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

input(0.2757)

Python评估它是一个浮点数。类似地,在你的情况下,0000被评估为一个整数,并且因为四个零与一个零相同,所以它会将它们剁掉。在Python 2.x中,通常建议使用raw_input()来保证安全。

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