import pickle,getpass
def usr_date():
try:
with open('usr_date.pkl','rb') as f:
return pickle.load(f)
except EOFError:
return None
def update_usr(usr_dic):
with open('usr_date.pkl','wb') as f:
pickle.dump(usr_dic,f)
def register():
'注册'
usr_dic = {} #创建了一个空字典,等带传进去用户名和密码
usr_name = input('请输入用户名')
open_date = usr_date() if usr_date() else {}
if usr_name in open_date.keys():
print('用户已存在,请登录')
return False
usr_password = input('请输入你的密码:')
[usr_name] = usr_password #空字典接收到用户输入的名字和密码
update_usr(usr_dic) #把字典写进文件,并且用pickle保存
return print('注册成功')
def Sign_in():
'登录'
cont = 0
while cont<3:
usr_name = input('请输入你的用户名:')
open_date = usr_date() if usr_date() else {}
if usr_name not in open_date.keys():
pass
usr_password = getpass.getpass('请输入你的密码:')
if usr_password != open_date.get(usr_name):
print('用户名或密码错误,请从新填写')
cont += 1
if cont == 3: #判断如果cont=3 证明用户已经错误三次,然后跳出循环
print("输入三次失败,请从新选择登录")
else:
print('登陆成功')
return True
def login_index():
while True:
usr = input('1.注册 2.登录 任意键退出:')
if usr == '1':
register()
elif usr =='2':
Sign_in()
else:
break
login_index()