Python实现简单的用户登录信息确认,密码输错3次后,用户被锁定

'''问题描述:
从文档中读入用户名和密码,检验用户名和密码的正确性,
密码输错三次后用户被锁定,不允许登陆
解决思路:
1.读用户信息文档,存入二维列表中,
2.需要把锁定的拉入黑名单
3.只有用户名输对的情况下才可以输入密码,密码输错三次用户就被锁定
'''


#User_Info存用户名和密码,Lock_Info存被锁定的用户
file = open(r"User_Info.txt","r")
file2 = open(r"Lock_Info.txt","r+")
user = file.readlines()#读用户名和密码
black_user =file2.readlines()#存黑名单
_user = []
_black_user = []


#把user_info,txt的用户信息存入列表_user
for info in user:
temp = info.strip('\n')
temp2 = temp.split('\t')
_user.append(temp2)
#把user_info,txt的用户信息存入列表_user
for info in black_user:
temp = info.strip('\n')
temp2 = temp.split('\t')
_black_user.append(temp2)


while True:
username = input("Please input your username:")
#先判断用户是否在黑名单中
for i in range(len(_black_user)):
if username == _black_user[i][0]:
print("user has been locked")
exit() # 直接退出
#当不再黑名单时。判断在不在user_info中,如果不再就不停输入用户名
for i in range(len(_user)):
if i == len(_user) - 1 and username != _user[len(_user) - 1][0]:
print("username does not exist;")
break
if username != _user[i][0]:
continue
else:
count = 0 #密码计数器
passwd = input("Please input your passwd:")
while count < 3:
if passwd == _user[i][1]:
print("Successfully login in...")
exit() #break只是退出while循环,仍会进行下次for循环,所以登陆成功直接exit()退出程序
elif count < 2:
print("wrong passwd.please input again.")
passwd = input("Please input your passwd:")
count +=1
else:
print("you have tried 3 times.your acount have been locked...")
file2.write(_user[i][0] + "\t" + _user[i][1] + "\n")#被锁后用户信息读到中
exit()
file.close()
file2.close()

猜你喜欢

转载自www.cnblogs.com/lz-calm/p/9374997.html