要求:
1、密码长度 >6
2、必须包括 字母数字 特殊符号(至少一个大写字母,和一个特殊符号)
编写思路:
a、随机生成大写字母
b、随机生成特殊符号
c、随机生成小写字母和数字
d、主函数 实现对上诉函数功能的调用
代码解读:
random.randint(x,y) :随机返回x到y之间的一个值
random.choices(a,k=b):从非空序列中随机选取b个数据并返回
代码编写:
#随机生成若干大写字母
def get_upper():
count = random.randint(1,3)
return random.choices('ABCDEFGHIJKLMNQPGRSTUVWXYZ',k=count)
#随机生成若干特殊符号
def get_special_char():
count =random.ranfint(1,3)
return random.choices('!@#$%^&*()_+~',k=count)
#生成小写字母和数字
def get_lower(count):
string ='abcdefghijklmnopqrstvuwxyz123456789'
return random.choices(string,k=count)
#主函数 generate_password 调用前面已经实现的函数功能
import random
def generate_password(length):
if length < 6:
length =6
lst =[ ]
upper_lst =get_upper() # 大写
special_char =get_special_char() # 特殊字符
lst.extend(upper_lst)
lst.extend(special_char)
surplus_count =length -len(lst)
lower_lst =get_lower(surplus_count)
lst.extend(lowwer_lst)
#顺序打乱
random.shuffle(lst)
return ''.join(lst)
if __name__ =='__mian__':
print(generate_passwored(8))
print(generate_passwored(5))
print(generate_passwored(12))
运行结果如下:
关注我,让我们一起进步