首页 > 解决方案 > 在 Python 中生成随机字符

问题描述

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

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

我做了什么 :

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

标签: pythonpython-3.xrandom

解决方案


一种方法:

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)

样本运行的输出

NAA3U6MUGYRZ3DEX

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

# select 11 uppercase letters and digits at random
letters = random.choices(string.ascii_uppercase + string.digits, k=11)

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


推荐阅读