python习题-产生8位随机密码要包含大小写及数字

# 1、写一个产生密码的程序,
# 输入次数,输入多少次就产生多少条数据,
# 要求密码必须包含大写字母、小写字母和数字,长度8位,不能重复


#需求分析
#1、循环,输入什么就循环多少次
#2、随机来取值,是从所有的大写字母、小写字母、数字里面来取
#3、 0123456789 a-z A-Z
#4、长度8位,就是随机取8个
#5、不能重复,放到一个list里面,再判断,如果产生的数字不在这个list的话,就是不重复
#6、写到文件里面就行了
#来3个字符串
#012345679 从这个字符串里面取1位 包含数字
#a-z 再随机从这里取1位 包含小写字母了
#A-Z 再随机从这里取1位 包含大写字母了
#0123456789 a-z A-Z 再取5位,再和前面的3位加起来 8位
import random,string

count = input('请输入你要产生多少条密码:').strip()
all_passwds = []
for i in range(int(count)):
num = random.sample(string.digits,1) #随机取1位数字
lower = random.sample(string.ascii_lowercase,1) #随机取1位小写字母
upper = random.sample(string.ascii_uppercase,1) #随机取1位大写字母
other = random.sample(string.ascii_letters+string.digits,5) #随机取5位
res = num+lower+upper+other #产生的8位密码
res = ''.join(res)+' '
print('res...',res)
if res not in all_passwds: #判断是否重复
all_passwds.append(res)
with open('passwds.txt','a+') as fw:
fw.seek(0)
fw.writelines(all_passwds)

原文地址:https://www.cnblogs.com/niuniu2018/p/7696409.html