我正在银行系统中做一些代码,其中有一个预设密码,然后程序将使用randint生成一个随机数,然后该随机数就是字符在预设密码中的位置。用户必须键入所生成数字位置的字符,例如,如果我的预设密码是12345,而生成的数字是3,则我应该键入4才能访问系统。>
如您所见,我正在测试从字符串中调用字符并将其与随机数合并,但是它不起作用,您还有其他想法可以执行吗?谢谢。抱歉,这可能会引起您一些困惑,但这只是我的代码走了这么远,我仍然从python开始。
import random
randomOne = (random.randint(0,3))
password = "code"
print(randomOne)
decode = input("input a character: ")
if decode == password + str(randomOne):
print("Access Granted")
pass
else:
print("Access Denied")
答案 0 :(得分:1)
这是您要找的吗?
#This is your randomly generated character position in the password
randomIndex = random.randint(0,len(code)-1)
#This is the character itself
randomCharacter = code[randomIndex]
#Ask the user for input
reply = input("Please enter the character in position", randomIndex+1)
#Check to see if user's input matches the actual character
if reply == randomCharacter:
print("Access")
else:
print("Fail")
答案 1 :(得分:0)
您在此处未使用任何随机数,
如果必须知道它选择的索引,请使用:
random_position = random.randint(0, len(password)-1)
random_letter = password[random_number]
#then ask them to enter the letter at the index it chose
否则,如果您只需要使用密码随机输入一个字母:
random_letter = random.choice(password)
#then ask for them to enter the letter it chose
答案 2 :(得分:0)
在这里使用random.randrange
是可行的。这将允许您使用密码的len
建立一个范围,然后从该范围中选择一个随机整数。然后,您可以使用此随机整数来索引您的代码密码。
from random import randrange
pwd = 'code'
pos = randrange(len(pwd))
attempt = input(f'Enter character at index {pos}: ')
if attempt == pwd[pos]:
print('Access Granted')
else:
print('Access Denied')