'''
注册登录程序
注册账号写入文件
登录允许失败3次
'''
def register(usr_name, usr_psd): #定义注册函数
with open('usr_info.txt', mode='r+', encoding='utf-8') as reg_obj:
for line in reg_obj:
if usr_name in line:
return 5 # 返回值5代表注册用户已存在
reg_obj.write('{} {} \n'.format(usr_name, usr_psd))
return 6 # 返回值6代表注册成功
def login(usr_name, usr_psd): #定义登录函数
with open('usr_info.txt', mode='r', encoding='utf-8') as reg_obj:
for line in reg_obj:
if usr_name == line.strip().split(' ')[0]: #strip去换行符\n,split转为列表
if usr_psd == line.strip().split(' ')[1]:
return 1 # 返回值1代表登陆成功
else:
return 2 # 返回值2代表密码错误
else:
return 3 # 返回值3代表无此用户
print("Welcome to my system".center(50, '='))
while 1:
choose = input("是否为本系统用户?不是则自动进行注册:y/n/q").strip().lower()
if choose == 'y':
count = 3
while count > 0:
user = input("请输入用户名:").strip()
psd = input("请输入密码:").strip().lower()
result = login(user, psd)
if result == 1:
print('登陆成功,欢迎回来'.center(50, '='))
break
elif result == 2:
count -= 1
print('密码错误!剩余{}次登录机会'.format(count))
elif result == 3:
count -= 1
print('查无此人!剩余{}次登录机会'.format(count))
else:
print("未知错误")
break
elif choose == 'n':
while 1:
user = input("请输入用户名:").strip()
psd = input("请输入密码:").strip().lower()
psd1 = input("请再次输入密码:").strip().lower()
if psd == psd1:
reg = register(user, psd)
if reg == 5:
print("用户已存在")
continue
elif reg == 6:
print("注册成功!")
break
else:
print("两次输入密码不一致,请重新注册:")
continue
break
elif choose == 'q':
print("选择退出,再见!!")
break
else:
print("输入错误,请重新输入:")