首页 > 代码库 > 用户登陆程序,密码三次错误自动锁定用户名。
用户登陆程序,密码三次错误自动锁定用户名。
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("欢迎您继续进行您想要的操作:") #登陆成功后执行当层程序代码。
用户登陆程序,密码三次错误自动锁定用户名。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。