day4 自动生成密码文件 & 注册
#写一个自动生成密码文件的程序 # 1 输入几,文件里面就产生多少条密码 input #2 密码必须包含 大写字母 小写字母 数字 特殊字符 #3 密码不能重复 #4 密码都是随机产生的 #5 密码长度6-11位 import string,random pwd_len = input('请输入你要产生多少条密码:').strip() pwds = set() #存放所有的密码 if pwd_len.isdigit(): pwd_len = int(pwd_len) while len(pwds)!=pwd_len: num=random.choice(string.digits) #随机取一个元素 数字 choice letter = random.choice(string.ascii_lowercase) #随机取一个元素 小写 choice upper = random.choice(string.ascii_uppercase)#随机取一个元素 大写 choice pun = random.choice(string.punctuation) #随机取一个元素 特殊字符 choice pasd_len = random.randint(6,11) #代表生成密码的长度 other_len = pasd_len - 4 #剩余的长度 all_strs = string.digits+string.ascii_letters+string.punctuation # 数字 大小写 特殊字符 other_passwd = random.sample(all_strs,other_len)#随机取到剩下的密码 pwd_list = [num,letter,upper,pun]+other_passwd #产生密码之后的list random.shuffle(pwd_list)#顺序打乱 pwd_str = ''.join(pwd_list) #最终的密码 pwds.add(pwd_str+'\n') else: open('passwds.txt','w').writelines(pwds) else: print('条数必须是整数!')
#2.写一个注册程序,账号和密码都存在文件里面 #users表 存了用户名,密码 # niuhanyang 123456 #choice = input('请输入你的选择:1 注册 2 删除用户 3登录') #注册 输入账号 密码 密码确认 需要校验用户是否存在 2次输入的密码是否一致,为空。账号和密码存在文件里面 #删除 输入一个用户名就删除这个 需要校验用户是否存在 #登录 输入账号密码登录 需要校验用户是否存在 users_all = {} #存放所有的用户,用字典定义 with open('users') as f: for line in f: # niuhanyang,123456\n line = line.strip() temp = line.split(',') username = temp[0] pwd = temp[1] users_all[username]=pwd print(users_all) for i in range(3): choice = input('请输入你的选择:\n1.登录\n2.注册\n3.删除').strip() if choice =='1': uesrname = input('请输入用户名:').strip() pwd = input('请输入密码:').strip() if username and pwd: if username in users_all: if users_all.get(username)==pwd: print('登录成功') else: print('账号密码错误') else: print('账号不存在') else: print('账号密码不能为空') elif choice =='2': username = input('请输入用户名:').strip() pwd = input('请输入密码:').strip() cpwd = input('请确认密码').strip() if username and pwd and cpwd: if username in users_all: print('账号存在') else: if pwd == cpwd: users_all[username]=pwd print('注册成功') else: print('两次密码不一致') else: print('输入不能为空') elif choice == '3': username = input('请输入用户名:').strip() if username in users_all: users_all.pop(username) print('删除成功') else: print('输入不能为空') else: print('输入有误,请重新输入') else: with open('users','w') as fw: for uname,pwd in users_all.items(): fw.write(uname+','+pwd+'\n')