要求:
1.支持多个用户登录(把已有的用户名和密码存放在一个文件中,锁定的用户名存放在另一个文件中)
2.输入正确的用户名和密码,则登录成功;密码错误,可以重新输入密码两次;用户名错误,可以重新注册用户名,也可以重新输入用户名和密码。
3.用户名输入正确,密码错误三次后,锁定用户名,退出;
4.输入三次后,退出程序。
代码如下:
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 in user_pw.readlines(): u,p=line.split()#把一行的字符串按空格分割成两个字符串 UP_user.append(u) UP_pw.append(p) #读取用户名被锁定的用户,存放到列表LU中 for line in lock_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+=1 count=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 in in_user: if in_user.count(iu)>=3: lock_user.write(iu+'\n')#把输入超过三次的用户名锁定到文件中 print('用户名'+iu+'已锁定') break lock_user.closed user_pw.closed
测试结果:
(1)
(2)
(3)
(4)
欢迎各位大神测试,指正!