有没有可能将字符串的位置分配给随机整数的方法?

时间:2018-10-12 14:49:10

标签: python

我正在银行系统中做一些代码,其中有一个预设密码,然后程序将使用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")

3 个答案:

答案 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')