首页 > 代码库 > 用户登陆程序,密码三次错误自动锁定用户名。

用户登陆程序,密码三次错误自动锁定用户名。

1.正常用户存储文件:users

技术分享

2.锁定用户存储文件:lock_name

技术分享

3.执行程序:

 

while True:         #while循环。
    name=input("please input your name:").strip()   #引导用户输入用户名。
    psw=input("please input your psw:").strip()     ##引导用户输入密码。
    dict = {}       #建立一个空字典
    list = []       #建立一个正常用户名待导入的空列表。
    list2=[]        #建立一个锁定用户待导入的空列表。
    flag=0          #创建一个标志位,默认关闭。
    count = 0       #计时器。
    with open("users",encoding="utf8") as fire1,open("lock_name", encoding="utf8") as fire:#打开正常用户存储文件和锁定用户存储文件
        for i in fire:      #遍历锁定用户文件。
            list2.append(i.strip())     #将锁定文件内用户名导入列表list2。
        for p in fire1:     #遍历正常用户文件。
            name_a, psw_a = p.strip().split("---")      #按列表格式导出相对应的用户名跟密码。
            list.append(p.strip().split("---"))         #将导出的列表再嵌套倒列表list中。
            for i in list:  #遍历列表list
                dict[i[0]] = i[1]       #将列表list转成字典。
        for j in list2:     #遍历锁定列表list2。
            if name==j:
                print("对不起,您的用户名目前为锁定状态!")
                exit()      #判断输入的用户名是否在list2,如果在就提示为锁定用户并且退出,否则跳到下层代码。
        if name not in dict.keys():
                print("用户名不存在!")
                continue       #如果用户输入的用户名不在正常用户列表,提示用户并重新输入。
        while count<3 and flag==0:      #循环范围计时器小于3次,标志位为关闭。
            for key,value in dict.items():  #遍历字典键值对。
                if name==key and psw==value:    #如果输入的用户名跟密码与键值对相对应。
                    print("".join(["欢迎",name,"用户!"]))       #提示登陆成功。
                    flag=1      #同时标志位开关打开。
                    break       #跳出本层循环。
                if name==key and psw!=value:    #如果用户名正确而密码不正确。
                    print("您的密码错误!")        #提示密码不正确。
                    count+=1            #计时器+1。
                    if count==3:        #当计时器等于3时。
                        with open("lock_name",mode="a+",encoding="utf8" ) as fire:  #a+模式打开锁定文件。
                            fire.write("\n")
                            fire.write(name)        #将超过三次错误的用户名追加方式写进文件。
                            print("您的用户名已锁定!")
                            exit()                  #并且退出程序。
                    psw = input("please input your psw:").strip()       #不超过三次提示继续输入密码。
    print("欢迎您继续进行您想要的操作:") #登陆成功后执行当层程序代码。

 

  

 

用户登陆程序,密码三次错误自动锁定用户名。