文件操作之用户登录

'''
注册登录程序
注册账号写入文件
登录允许失败3次
'''


def register(usr_name, usr_psd): #定义注册函数
    with open('usr_info.txt', mode='r+', encoding='utf-8') as reg_obj:
        for line in reg_obj:
            if usr_name in line:
                return 5  # 返回值5代表注册用户已存在
        reg_obj.write('{} {} \n'.format(usr_name, usr_psd))
        return 6  # 返回值6代表注册成功


def login(usr_name, usr_psd): #定义登录函数
    with open('usr_info.txt', mode='r', encoding='utf-8') as reg_obj:
        for line in reg_obj:
            if usr_name == line.strip().split(' ')[0]: #strip去换行符\n,split转为列表
                if usr_psd == line.strip().split(' ')[1]:
                    return 1  # 返回值1代表登陆成功
                else:
                    return 2  # 返回值2代表密码错误
        else:
            return 3  # 返回值3代表无此用户


print("Welcome to my system".center(50, '='))
while 1:
    choose = input("是否为本系统用户?不是则自动进行注册:y/n/q").strip().lower()
    if choose == 'y':
        count = 3
        while count > 0:
            user = input("请输入用户名:").strip()
            psd = input("请输入密码:").strip().lower()
            result = login(user, psd)
            if result == 1:
                print('登陆成功,欢迎回来'.center(50, '='))
                break
            elif result == 2:
                count -= 1
                print('密码错误!剩余{}次登录机会'.format(count))
            elif result == 3:
                count -= 1
                print('查无此人!剩余{}次登录机会'.format(count))
            else:
                print("未知错误")
        break
    elif choose == 'n':
        while 1:
            user = input("请输入用户名:").strip()
            psd = input("请输入密码:").strip().lower()
            psd1 = input("请再次输入密码:").strip().lower()
            if psd == psd1:
                reg = register(user, psd)
                if reg == 5:
                    print("用户已存在")
                    continue
                elif reg == 6:
                    print("注册成功!")
                    break
            else:
                print("两次输入密码不一致,请重新注册:")
                continue
            break
    elif choose == 'q':
        print("选择退出,再见!!")
        break
    else:
        print("输入错误,请重新输入:")

 

posted @ 2020-03-27 17:16  vivagoal  阅读(138)  评论(0)    收藏  举报