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

 

posted @ 2018-05-23 10:28  xiaomeng15  阅读(140)  评论(0编辑  收藏  举报