需求:写一个自动生成密码文件的程序
1、你输入几,文件里面就给你产生多少条密码 //循环
2、密码必须包括,大写字母、小写字母、数字、特殊字符 //random.choice(string模块取字符)
3、密码不能重复 //集合set()
4、密码都是随机产生的 //random.choice()
5、密码长度6-11 //random.randrange()
import random,string
num=input('你想生成多少条密码:').strip()
pwds=set()#存放密码的集合
if num.isdigit():
num=int(num)
while len(pwds) != num:#当集合长度不等于密码条数时执行
#生成密码必须包含的大小写字母、数字、特殊字符
pwd_lower=random.choice(string.ascii_lowercase)
pwd_upper=random.choice(string.ascii_uppercase)
pwd_dig=random.choice(string.digits)
pwd_pun=random.choice(string.punctuation)
# 生成密码长度、密码取值范围的字符集
pwd_len = random.randrange(6, 11)
character=string.ascii_lowercase+string.ascii_uppercase+string.digits+string.punctuation
pwd_remain=random.sample(character, pwd_len-4)#随机取剩余的密码字符, 返回结果:list
pwd=pwd_remain+[pwd_lower,pwd_upper,pwd_dig,pwd_pun]#将随机取的5组密码字符放在一个list里
random.shuffle(pwd)#用random.shuffle()打乱list元素顺序
pwd="".join(pwd)#list转str
pwds.add(pwd+'\n')
else:
open('password.txt', 'w').writelines(pwds)##当集合长度等于密码条数时, 集合内容写入文件
else:
print("请输入数字!")