从列表中选择一个随机字符串,其长度为变量的长度

问题描述 投票:-1回答:2

代码:

if Dash == 0:
    # Enter X multiple times
    print("Only use X")
    Code0 = input()
    print(secrets.choice(LetterNumbers) * len(Code0))

变量“ LetterNumbers”是包含所有英文字母和数字的列表。一切正常,除了以下内容:

print(secrets.choice(LetterNumbers) * len(Code0))

它从“ LetterNumbers”中选择一个随机字母或数字的次数应与变量“ Code0”的长度一样多,但是它只选择一个(例如A),然后将相同的字符打印多次。作为“ Code0”的长度。

输出为:

AAA

但是应该是:

ABC(或每次随机但不相同的字母)

希望您能理解我的意思,因为我的英语说得不太好。

提前感谢

python python-3.x variables random
2个回答
1
投票

尝试一下:

print(''.join(secrets.choice(LetterNumbers) for _ in Code0))

循环变量不是我们直接关心的事情,因此使用_作为变量名称表示它是一个虚拟变量。


0
投票

它打印相同的字母3次,因为这就是您要执行的操作:

secrets.choice(LetterNumbers) * len(Code0)

将对single调用的结果复制到secrets.choice len(Code0)次。您需要做的是多次呼叫secrets.choice,例如

''.join(secrets.choice(LetterNumbers) for _ in range(len(Code0)))
© www.soinside.com 2019 - 2024. All rights reserved.