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("欢迎您继续进行您想要的操作:") #登陆成功后执行当层程序代码。
原文:http://www.cnblogs.com/mrpengfei/p/6683668.html