在 python 2.7 中,我试图创建一个程序,它将生成一个介于 100000 和 999999999 之间的随机数,然后将其发送到用户的电子邮件中。到目前为止,它会创建一个随机数,然后将其发送到用户的电子邮件中,但是当用户输入他们的代码时,它总是打印不正确。我该如何解决这个问题?
code = random.randrange(100000, 99999999)
entry = getpass.getpass('Code: ')
if entry == code:
print 'Welcome!'
else:
print 'Incorrect!'
最佳答案
您正在比较 int 对象(由 random.randrange 生成)和 str 对象(由 getpass.getpass 返回); yield 始终为 false。
>>> 1 == '1'
False
将 code
转换为 str.
>>> str(1) == '1'
True
或者,您可以将 entry
转换为 int。但是,您应该检查条目是否只包含数字或者应该捕获 ValueError。
关于Python 2.7 随机码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341228/