user_pw=open('username_file','r+',encoding='utf_8') #打开存放用户名和密码的文件
lock_user=open('lock_file','r+',encoding='utf-8') #打开存放被锁定用户的文件
LU=[]#用来存放被锁定用户的用户名
UP_user=[] #用来存放文件中已有的用户名
UP_pw=[]#用来存放文件中已有用户的密码
in_user=[]#存放运行过程中用户输入的用户名,用来判断用户输入某一个用户名的次数是否超过3次
count=0 #计算用户的登录次数
count1=0 #计算用户输入密码的次数#读取文件中存放的用户名和密码,并存放到列表UP_user和UP_pw中
for line inuser_pw.readlines():
u,p=line.split()#把一行的字符串按空格分割成两个字符串
UP_user.append(u)
UP_pw.append(p)#读取用户名被锁定的用户,存放到列表LU中
for line inlock_user.readlines():
l=line.strip()
LU.append(l)#用户输入用户名、密码少于三次
while count<3:
user=input("请输入用户名")
in_user.append(user)
pw=input("请输入密码")if user in LU:#判断输入的用户名是否在被锁定用户中
print("用户已锁定")break
if user in UP_user:#输入的用户名没有被锁定
i=UP_user.index(user)#找到输入的用户名在列表中的索引值
if pw==UP_pw[i]:#找到相同索引的密码判断和输入的密码是否一致
print("登录成功")break
else:print("密码错误")while count1<2:#用来判断用户输入了几次密码(一共三次,最开始已经输入了一次,所以还剩两次)
pw1=input("请重新输入密码")if pw1==UP_pw[i]:print("登录成功")break
else:print("密码错误")
count1+=1count=3
break
else:print("该用户名未注册,注册请输入'yes',按任意键重新输入用户名")
a=input()#注册
if a=='yes':print(user)print(pw)
user_pw.write(user+' '+pw+'\n')#把用户名密码存放到文件中
UP_user.append(user)#把用户名和密码存放到数组中
UP_pw.append(pw)print('注册成功')
count+=1
if count==3:print("您输入的次数太多")for iu inin_user:if in_user.count(iu)>=3:
lock_user.write(iu+'\n')#把输入超过三次的用户名锁定到文件中
print('用户名'+iu+'已锁定')breaklock_user.closed
user_pw.closed