在python 2.7中我试图创建一个程序,它将生成一个介于100000和999999999之间的随机数,然后将其发送给用户的电子邮件。到目前为止,它创建了一个随机数,然后将其发送给用户电子邮件,但是当用户键入其代码时,它始终打印不正确。我该如何解决这个问题?
code = random.randrange(100000, 99999999)
entry = getpass.getpass('Code: ')
if entry == code:
print 'Welcome!'
else:
print 'Incorrect!'
答案 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
)