Python程序设计

生成指定长度为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个字母随机排序,运行结果:

img

代码:

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())