生成指定长度为8的随机密码
要求:密码为3位数字、一位特殊符号和四位字母组成
import string, random
seq = random.choices(string.digits, k=3) + random.choices(string.punctuation, k=1) + random.choices(string.ascii_letters, k=4)
random.shuffle(seq)
print(''.join(seq))
--------------------------------
In [1]: import string, random
# 生成 密码为3位数字、一位特殊符号和四位字母组成 的序列
In [2]: seq = random.choices(string.digits, k=3) + random.choices(string.punctuation, k=1) + random.choices(string.ascii_letters, k=4)
# 序列长这个样子
In [3]: seq
Out[3]: ['3', '7', '3', '.', 'V', 'N', 'P', 'T']
# 给序列随机排序
In [4]: random.shuffle(seq)
# 排序后的序列长这个样子
In [5]: seq
Out[5]: ['7', 'T', '3', '3', '.', 'N', 'P', 'V']
# 拼接序列成字符串
In [6]: print(''.join(seq))
7T33.NPV
In [7]:
import random
secret_list = []
# 随机生成三个数字
for i in range(3):
secret_list.append(random.randint(1, 9))
# 随机生成四个字母
for i in range(4):
secret_list.append(chr(random.randint(97, 122)))
# 随机生成一个特殊符号
special_char = chr(random.randint(33, 47))
secret_list.append(special_char)
# 打乱这个列表
random.shuffle(secret_list)
# 拼接列表
secret = ''.join(map(str, secret_list))
print(secret)
通过随机的ASCII码来取随机的字母和符号,如果有问题请提出,谢谢!
3个数字、1个特殊符号、4个字母随机排序,运行结果:
代码:
import random
# 所有字母
a = []
for i in range(65,91):
a.append(chr(i))
for i in range(97,123):
a.append(chr(i))
# 所有数字
b = []
for i in range(48,58):
b.append(chr(i))
# 所有特殊字符
c = []
for i in range(33,48):
c.append(chr(i))
for i in range(58,65):
c.append(chr(i))
for i in range(91,97):
c.append(chr(i))
for i in range(123,127):
c.append(chr(i))
# 取3个数字
oo = []
for i in range(3):
index = random.randint(0,9)
oo.append(b[index])
# 取1个特殊字符
index = random.randint(0,len(c)-1)
oo.append(c[index])
# 取4个字母
for i in range(4):
index = random.randint(0,51)
oo.append(a[index])
# 随机打乱
random.shuffle(oo)
# 拼接到字符串
mystr = ''.join(oo)
print(mystr)
def password():
import random
number = [chr(i) for i in [*range(48,58)]]
letter = [chr(i) for i in [*range(65,91),*range(97,123)]]
punctuation = [chr(i) for i in [*range(33,47)]]
p = random.choices(number, k=3)
p += random.choices(punctuation, k=1)
p += random.choices(letter, k=4)
random.shuffle(p)
return ''.join(p)
for _ in range(5):
print(password())