with open('user_pass.txt', 'r', encoding='utf-8') as user_lis, open('user_status.txt', 'r', encoding='utf-8') as user_stat:
use_stat_li = user_stat.read().split(',')
use_lis_dic = {}
for i in user_lis:
use_lis_dic.setdefault(i.split()[0], i.split()[1])
def user_regi(arg):
if arg not in use_lis_dic:
use_regi = arg
use_pa_regi = input('输入密码')
use_pa_regi2 = input('再次输入密码')
if use_pa_regi == use_pa_regi2:
user_new_write = open('user_pass.txt', 'a', encoding='utf-8')
user_new_write.write('\n'+use_regi + ' ' + use_pa_regi)
user_new_write.close()
print('用户', arg, '注册成功,请登录')
else:
print('密码输入不一致')
else:
print('当前用户名已经注册,请重新输入')
def login(name):
count = 0
for i in range(5):
# name = input('请输入用户名>>')
if name not in use_stat_li: # 是否在黑名单中
# continue # 在黑名单中直接进入下一次循环,重新输入用户名和密码
if name in use_lis_dic:
passwd = input('请输入密码>>')
if passwd == use_lis_dic.get(name):
print('欢迎老用户', name, '回来')
break
else: # 密码错误
if count == 2:
name_bak_write = open('user_status.txt', 'a', encoding='utf-8')
name_bak_write.write(name + ',')
name_bak_write.close() # 3次密码错误,就把用户名写进黑名单
print('用户名已锁定,请联系管理员!!!')
break
print('密码错误!!!')
count += 1 # 密码错一次,count就+1
elif name in use_lis_dic:
print('用户名已被锁定,请联系管理员!!!')
# print('当前用户不存在系统中,y注册,n登录')
# xu = input('输入选择')
# if xu == 'y':
# user_regi(name)
break
# continue
else:
if i == 4: # 用户名错5次,直接退出
print('尝试次数过多,再见!!!')
continue
def init_sys():
name = input('请输入用户名>>')
if name in use_lis_dic:
login(name)
elif name not in use_lis_dic:
print('当前用户不存在系统中,y注册,n登录')
xu = input('输入选择')
if xu == 'y':
user_regi(name)
elif xu == 'n':
login(name)
else:
print('输入正确指令')
if __name__ == '__main__':
init_sys()