编写登录接口:
输入用户名和密码
认证成功显示欢迎
用户名输错三次退出程序
密码输错三次锁定,下次运行依旧锁定(把结果保存到文件)
- 输入用户名密码
- 用户名密码等信息.txt文件[同一个人信息放一行,每行内不同内容用逗号隔开],读取.txt文件,循环读取每行元素,去除元素间、元素内的空格,保存在字典中
- 判别用户是否锁住、
- 判别用户名、密码 正确 ; 错误:判别输错次数,更新.txt文件
#!/usr/bin/env python
# -*- coding:utf-8 -*-
_user_dict = { }
_user_list = []
_login_error_count = 0
while True:
#输入
_user_naming = input("Please input your username:")
_user_password = input("Please input your password:")
_user_data = open('user.txt')
#读取.txt文件信息到字典中
for user_data in _user_data:
_user_list = user_data.strip()
_user_data = _user_list.split(',')
_user_name = _user_data[0].strip()
_user_pass = _user_data[1].strip()
_user_locked = _user_data[2].strip()
_user_error_count = int(_user_data[3].strip())
_user_dict[_user_name] = {'name': _user_name, 'password': _user_pass,
'locked': _user_locked, 'errorcount': _user_error_count}
#判别用户是否存在
if _user_naming in _user_dict.keys():
#判别用户是否锁住
if _user_dict[_user_naming]['locked']=='1':
print("The account was locked,please contact administrator!")
break
#判别用户名、密码是否正确
if _user_naming==_user_dict[_user_naming]['name'] and _user_password==_user_dict[_user_naming]['password']:
print("Welcome to System")
break
else:
_user_dict[_user_name]['errorcount']+=1
#判别输错次数
if _user_dict[_user_name]['errorcount']<3:
print("The password was wrong,please try again,you have three chance")
_write_data=open('user.txt','w+')
for _user_value in _user_dict.value :
_user_list=[_user_value['name'],_user_value['password'],str(_user_value['locked']),str(_user_value['errorcount'])]
_user_list=','.join(_user_list+'\n')
_write_data.write(_user_list+'\n')
_write_data.close()
break
#输错次数大于3 用户锁住 输错次数归零
else:
print("You try three times,Acount locked")
_user_dict[_user_name]['locked']=1
_user_dict[_user_naming]['errorcount']=0
_write_data=open('user.txt','w+')
for _user_value in _user_dict.value :
_user_list=[_user_value['name'],_user_value['password'],str(_user_value['locked']),str(_user_value['errorcount'])]
_user_list=','.join(_user_list+'\n')
_write_data.write(_user_list+'\n')
_write_data.close()
break
else:
print("Please ensure input current account or password,you can try three times!")
_login_error_count+=0
if _login_error_count>2:
break
for _user_value in _user_dict.value :
_user_list=[_user_value['name'],_user_value['password'],str(_user_value['locked']),str(_user_value['errorcount'])] #字典数据拷贝到列表中
_user_list=','.join(_user_list+'\n') #将一个用户的信息元素用逗号连接成新字符串,下个用户信息元素换行'\n'
_write_data.write(_user_list+'\n')#写入到.txt文件中