# #二:周末综合作业:
# # 2.1:编写用户登录接口
# #1、输入账号密码完成验证,验证通过后输出"登录成功"
# user_info2.txt文件中
''' ---- user_info2.txt文件中数据 ----
tank:123
'''
# 答案
'''
while True:
username = input('请输入用户名: ').strip()
password = input('请输入密码: ').strip()
with open('user_info2.txt', 'r', encoding='utf-8') as f:
user, pwd = f.read().strip().split(':')
if username == user and password == pwd:
print('登录成功!')
break
else:
print('用户名或密码错误!')
'''
# #2、可以登录不同的用户
''' ---- user_info3.txt文件中数据 ----
tank:123
egon:321
'''
# 答案
'''
tag = True
while tag:
username = input('请输入用户名: ').strip()
with open('user_info3.txt', 'r', encoding='utf-8') as f:
for line in f:
user, pwd = line.strip().split(':')
# print(user, pwd)
if username == user:
password = input('请输入密码: ').strip()
if password == pwd:
print('登录成功!')
tag = False
break
else:
print('密码错误!')
'''
# #3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)
''' ---- user_info4.txt文件中数据 ----
tank:123:0
egon:321:0
'''
# 答案
'''
tag = True
while tag:
username = input('请输入用户名: ').strip()
with open('user_info4.txt', 'r', encoding='utf-8') as f, open('user_info5.txt', 'w', encoding='utf-8') as w:
for line in f:
user, pwd, locked = line.strip().split(':')
# print(user, pwd, type(locked))
locked = int(locked)
if locked == 3:
print('当前用户已被锁定')
if username == user:
while locked < 3:
password = input('请输入密码: ').strip()
if password == pwd:
print('登录成功!')
tag = False
break
else:
print('密码错误!')
locked += 1
w.write(f'{user}:{pwd}:{locked}
')
import os
os.remove('user_info4.txt')
# 将user_info5.txt修改为user_info4.txt
os.rename('user_info5.txt', 'user_info4.txt')
'''
# # 2.2:编写程序实现用户注册后,可以登录,
# 提示:
# while True:
# msg = """
# 0 退出
# 1 登录
# 2 注册
# """
# print(msg)
# cmd = input('请输入命令编号>>: ').strip()
# if not cmd.isdigit():
# print('必须输入命令编号的数字,傻叉')
# continue
#
# if cmd == '0':
# break
# elif cmd == '1':
# # 登录功能代码(附加:可以把之前的循环嵌套,三次输错退出引入过来)
# pass
# elif cmd == '2':
# # 注册功能代码
# pass
# else:
# print('输入的命令不存在')
# 思考:上述这个if分支的功能否使用其他更为优美地方式实现
'''
dic = {
'0': '退出',
'1': '登录',
'2': '注册',
}
while True:
msg = """
0 退出
1 登录
2 注册
"""
print(msg)
cmd = input('请输入命令编号>>: ').strip()
if not cmd.isdigit():
print('必须输入命令编号的数字,傻叉')
continue
if cmd not in dic:
print('输入有误')
continue
print(dic.get(cmd))
'''