Python 2.7随机代码

时间:2013-08-20 17:20:37

标签: python python-2.7 random

在python 2.7中我试图创建一个程序,它将生成一个介于100000和999999999之间的随机数,然后将其发送给用户的电子邮件。到目前为止,它创建了一个随机数,然后将其发送给用户电子邮件,但是当用户键入其代码时,它始终打印不正确。我该如何解决这个问题?

    code = random.randrange(100000, 99999999)

    entry = getpass.getpass('Code: ')
    if entry == code:   
        print 'Welcome!'
    else:
        print 'Incorrect!'

2 个答案:

答案 0 :(得分:5)

您将int对象(由random.randrange生成)与str对象(由getpass.getpass返回)进行比较;屈服总是假的。

>>> 1 == '1'
False

code转换为str。

>>> str(1) == '1'
True

或者您可以将entry转换为int。但是,你应该检查条目只包含数字或应该捕获ValueError。

答案 1 :(得分:2)

出于与4 == '4'False相同的原因。您需要比较类似的数据类型。做

if int(entry) == code

if entry == str(code)

(另外,它是randrange,而不是randomrange