在Python中生成随机字符

Bib*_*e12 4 python random python-3.x

我想生成一个 16 个字符的代码

代码有 5 个已知字符 代码有 3 位数字 代码必须是随机的

我做了什么 :

result1 = "NAA3U" + ''.join((random.choice(string.ascii_uppercase + string.digits) for codenum in range(11)))
Run Code Online (Sandbox Code Playgroud)

Dan*_*ejo 8

一种方法:

import random
import string

# select 2 digits at random
digits = random.choices(string.digits, k=2)

# select 9 uppercase letters at random
letters = random.choices(string.ascii_uppercase, k=9)

# shuffle both letters + digits
sample = random.sample(digits + letters, 11)

result = "NAA3U" + ''.join(sample)
print(result)
Run Code Online (Sandbox Code Playgroud)

样本运行的输出

NAA3U6MUGYRZ3DEX
Run Code Online (Sandbox Code Playgroud)

如果代码需要包含至少3位数字,但不限于此阈值,只需更改为这一行:

# select 11 uppercase letters and digits at random
letters = random.choices(string.ascii_uppercase + string.digits, k=11)
Run Code Online (Sandbox Code Playgroud)

这将从大写字母和数字中随机选择。