#二:周末综合作业:
# 2.1:编写用户登录接口
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)
tag = True
dict = {}
while tag:
inp_name = input('输入账号:')
with open(r'b.txt', mode='r', encoding='utf-8') as f1:
if inp_name in f1:
print('该账户已被锁定')
tag = False
break
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt', encoding='utf-8') as f:
for line in f:
name,pwd = line.strip().split(':')
if name == inp_name and pwd == inp_paw:
print('登入成功')
tag = False
break
elif name == inp_name and pwd != inp_paw:
print('密码错误')
if name not in dict:
dict[name]=0
dict[name] = dict.get(name)+1
if dict[name] == 3:
with open(r'b.txt', mode='a', encoding='utf-8') as f1:
f1.write(name)
print('该用户被锁定')
tag = False
break
else:
print('账号不存在')
# 2.2:编写程序实现用户注册后,可以登录,
dict = {}
while True:
msg = """
0 退出
1 登录
2 注册
"""
print(msg)
cmd = input('请输入命令编号>>: ').strip()
if not cmd.isdigit():
print('必须输入命令编号的数字,傻叉')
continue
if cmd == '0':
break
elif cmd == '1':
inp_name = input('输入账号:')
with open(r'b.txt', mode='r', encoding='utf-8') as f1:
if inp_name in f1:
print('该账户已被锁定')
break
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt', encoding='utf-8') as f:
for line in f:
name,pwd = line.strip().split(':')
if name == inp_name and pwd == inp_paw:
print('登入成功')
break
elif name == inp_name and pwd != inp_paw:
print('密码错误')
if name not in dict:
dict[name]=0
dict[name] = dict.get(name)+1
if dict[name] == 3:
with open(r'b.txt', mode='a', encoding='utf-8') as f1:
f1.write(name)
print('该用户被锁定')
break
else:
print('账号不存在')
elif cmd == '2':
inp_name = input('输入账号:')
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt',encoding='utf-8') as f:
for line in f:
name, pwd = line.strip().split(':')
if name == inp_name:
print('账号已存在')
break
else:
with open(r'a.txt', mode='at', encoding='utf-8') as f:
f.write('{}:{}\n'.format(inp_name,inp_paw))
print('注册成功')
else:
print('输入的命令不存在')
# 思考:上述这个if分支的功能否使用其他更为优美地方式实现
#二:周末综合作业:
# 2.1:编写用户登录接口
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)
tag = True
dict = {}
while tag:
inp_name = input('输入账号:')
with open(r'b.txt', mode='r', encoding='utf-8') as f1:
if inp_name in f1:
print('该账户已被锁定')
tag = False
break
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt', encoding='utf-8') as f:
for line in f:
name,pwd = line.strip().split(':')
if name == inp_name and pwd == inp_paw:
print('登入成功')
tag = False
break
elif name == inp_name and pwd != inp_paw:
print('密码错误')
if name not in dict:
dict[name]=0
dict[name] = dict.get(name)+1
if dict[name] == 3:
with open(r'b.txt', mode='a', encoding='utf-8') as f1:
f1.write(name)
print('该用户被锁定')
tag = False
break
else:
print('账号不存在')
# 2.2:编写程序实现用户注册后,可以登录,
dict = {}
while True:
msg = """
0 退出
1 登录
2 注册
"""
print(msg)
cmd = input('请输入命令编号>>: ').strip()
if not cmd.isdigit():
print('必须输入命令编号的数字,傻叉')
continue
if cmd == '0':
break
elif cmd == '1':
inp_name = input('输入账号:')
with open(r'b.txt', mode='r', encoding='utf-8') as f1:
if inp_name in f1:
print('该账户已被锁定')
break
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt', encoding='utf-8') as f:
for line in f:
name,pwd = line.strip().split(':')
if name == inp_name and pwd == inp_paw:
print('登入成功')
break
elif name == inp_name and pwd != inp_paw:
print('密码错误')
if name not in dict:
dict[name]=0
dict[name] = dict.get(name)+1
if dict[name] == 3:
with open(r'b.txt', mode='a', encoding='utf-8') as f1:
f1.write(name)
print('该用户被锁定')
break
else:
print('账号不存在')
elif cmd == '2':
inp_name = input('输入账号:')
inp_paw = input('输入密码:')
with open(r'a.txt', mode='rt',encoding='utf-8') as f:
for line in f:
name, pwd = line.strip().split(':')
if name == inp_name:
print('账号已存在')
break
else:
with open(r'a.txt', mode='at', encoding='utf-8') as f:
f.write('{}:{}\n'.format(inp_name,inp_paw))
print('注册成功')
else:
print('输入的命令不存在')
# 思考:上述这个if分支的功能否使用其他更为优美地方式实现