代码:
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(或每次随机但不相同的字母)
希望您能理解我的意思,因为我的英语说得不太好。
提前感谢
尝试一下:
print(''.join(secrets.choice(LetterNumbers) for _ in Code0))
循环变量不是我们直接关心的事情,因此使用_
作为变量名称表示它是一个虚拟变量。
它打印相同的字母3次,因为这就是您要执行的操作:
secrets.choice(LetterNumbers) * len(Code0)
将对single调用的结果复制到secrets.choice
len(Code0)
次。您需要做的是多次呼叫secrets.choice
,例如
''.join(secrets.choice(LetterNumbers) for _ in range(len(Code0)))