python-用户登录小程序

这个只是随便写写,估计还有错误,可我不想去改,如果有错误,有缘人就改了吧!

{'zhangS': {'state': '1', 'passwd': '123456'}}
user_data
1.根据文件内的用户名来判断。
2.如果存在,会让输入密码,然后显示登陆成功,
3.如果不存在,则会让新建用户,但是我没有做检查,如果新建的用户和文件内的数据重叠,则会覆盖原文件,这个时候你可以加一个判断,如果该用户已经存在,就不让新建。
4.输入用户后,则会检查“state”,如果不为“0“,则为锁定状态。
5.输入密码超过四次,则会锁定。
__author__ = 'Administrator'
def user(break_false=True,count=0):
    with open("user_data","r+",encoding="utf_8") as f:
        user_eval=eval(f.read())
        print("\033[31m****欢迎来到登录界面****\033[0m")
        while break_false:
            username=input("\033[32m输入您的用户名:\033[0m")
            if username in user_eval:
                if user_eval[username]["state"] =="0":
                    while break_false:
                        password=input("\033[32m输入您的密码:\033[0m")
                        if password ==user_eval[username]["passwd"]:
                            print("\033[31m登录成功...\033[0m")
                        else:
                            print("\033[31m密码错误,请重新输入...\033[0m")
                            if count == 3:
                                print("\033[31m密码错误次数过多,已锁定,请联系管理员...\033[0m")
                                user_eval[username]["state"]="1"
                                f.seek(0)
                                f.write(str(user_eval))
                                f.flush()
                                break_false=False
                            count +=1
                else:
                    print("\033[31m该账户已被锁定,请联系管理员...\033[0m")
                    break_false=False
            else:
                choise=input("\033[31m该账户不存在,是否新建[Y/N]...\033[0m")
                if choise =="y" or choise=="Y":
                    New_Construction()
                    exit()
                else:
                    print("\033[31m已退出...\033[0m")
                    break_false=False
def New_Construction(state="0"):
    with open("user_data","r+",encoding="utf_8") as f1:
        New_user=eval(f1.read())
        print("\033[31m****欢迎来到新建用户界面****\033[0m")
        new_username=input("\033[32m输入您的用户名:\033[0m")
        new_password=input("\033[32m输入您的密码:\033[0m")
        New_user[new_username]={"passwd":new_password,"state":state}
        f1.seek(0)
        f1.write(str(New_user))
        f1.flush()
        print("\033[31m****新建用户成功****\033[0m")
user()

猜你喜欢

转载自www.cnblogs.com/Yzhao/p/12800188.html