import random
verify0 = random.randint(0, 9)
verify1 = random.randint(0, 9)
verify2 = random.randint(0, 9)
print(verify0, end = '')
print(verify1, end = '')
print(verify2)
verans0 = int(input('Type the above number here: > '))
verans2 = {verify1, verify0, verify2}
if verify1 in verans2:
print('Authenticating...')
else:
print('Incorrect!')
while verans0 != verans2:
verans1 = input('Type the above number here: > ')
if verans1 == verify0:
print('Authenticating...')
else:
print('Incorrect!')
我想知道如何打印多个数字,并让某人键入所有数字以进行“身份验证”。
答案 0 :(得分:1)
您可以简单地从随机数字中创建正确的数字(或使用n = random.randint(100,999)
:
import random
verify0 = random.randint(0, 9)
verify1 = random.randint(0, 9)
verify2 = random.randint(0, 9)
number = verify0*100+verify1*10+verify # or: n = random.randint(100,999)
print(number)
while True:
try:
verans0 = int(input('Type the above number here: > '))
except ValueError:
continue
else:
if verans0 == number:
print('Authenticating...')
break # exit the while True loop
else:
print('Incorrect!')
print("done")
答案 1 :(得分:0)
因此,我假设您想显示3个数字,并让用户输入要验证的这3个数字。我不会为您编写整个程序,但以下是一些技巧,希望它们可以共同为您提供答案。
将3个数字放入一组时,您的代码存在问题。如果对randint的三个调用恰好产生匹配的数字,则您的集合中的数字将少于三个,因为集合不能包含重复的数字。因此,我将使用一个列表,假设您希望用户始终输入3个数字,即使其中两个(或三个)碰巧是相同的。
要让用户输入产生整数列表的三个数字,可以使用以下语句:
verans0 = [re.split中的i的int(i)(r'[^ \ d] +',input('在此处输入上述数字:'))]
这将把由任何非数字字符分隔的整数组成一个整数数组。有一种情况会破坏这一点,那就是输入没有数字的字符串。这将导致尝试解析非整数字符串。我将把这个问题留给您,以解决输入问题。您可能还想使用允许的分隔符,例如空白,空白和逗号等等。
要验证输入,我将遍历输入数组和每个数字输入:
如果通过列表时没有不匹配项,请检查verans2列表是否为空。如果不是,则用户无法输入所有数字,并且身份验证失败。如果为空,则说明身份验证成功。