作业一:编写用户登录接口
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#选做功能:同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)
lst_user = []
lst_psw = []
lst_black = []
#先获取账户名密码和黑名单
with open(r'C:\Users\wj\Desktop\user.txt',mode='r+',encoding='utf-8') as fp1,open(r'C:\Users\wj\Desktop\black.txt',mode='r+',encoding='utf-8') as fp2:
res1 = fp1.readlines()
res2 = fp2.readlines()
for i in res1:
user, psw = i.strip('\n\ufeff').split(':')
lst_user.append(user)
lst_psw.append(psw)
for i in res2:
black = i.strip('\n\ufeff')
lst_black.append(black)
user = input('请输入用户名:')
#登录黑名单情况先排除
if user in lst_black:
print('该账户被锁定')
elif user in lst_user and user not in lst_black:
for i in range(3):
psw = input('请输入密码:')
if psw == lst_psw[lst_user.index(user)]:
print('登录成功')
break
else:
print('密码错误,请重新输入')
else:
#for循环完了还没登录上,密码错了3次,执行else操作,将用户名丢进黑名单
fp2.write(user+'\n')
print('密码错误3次,账号已锁定')
else:
print('用户名错误')
#作业二:编写程序实现用户注册后(注册到文件中),可以登录(登录信息来自于文件)
提示:
sign = True
while sign:
msg = """
0 退出
1 登录
2 注册
"""
print(msg)
cmd = input('请输入命令编号>>: ').strip()
if not cmd.isdigit():
print('必须输入命令编号的数字,傻叉')
continue
if cmd == '0':
break
elif cmd == '1':
# 1.设置账号密码及黑名单文件,获取账号密码,黑名单(只有用户名)
lst_user = []
lst_psw = []
lst_black = []
# 先获取账户名密码和黑名单
with open(r'C:\Users\wj\Desktop\user.txt', mode='r+', encoding='utf-8') as fp1, open(
r'C:\Users\wj\Desktop\black.txt', mode='r+', encoding='utf-8') as fp2:
res1 = fp1.readlines()
res2 = fp2.readlines()
for i in res1:
user, psw = i.strip('\n\ufeff').split(':')
lst_user.append(user)
lst_psw.append(psw)
for i in res2:
black = i.strip('\n\ufeff')
lst_black.append(black)
user = input('请输入用户名:')
# 登录黑名单情况先排除
if user in lst_black:
print('该账户被锁定')
elif user in lst_user and user not in lst_black:
for i in range(3):
psw = input('请输入密码:')
if psw == lst_psw[lst_user.index(user)]:
print('登录成功')
sign = False
break
else:
print('密码错误,请重新输入')
else:
# for循环完了还没登录上,密码错了3次,执行else操作,将用户名丢进黑名单
fp2.write(user + '\n')
print('密码错误3次,账号已锁定')
else:
print('用户名错误')
elif cmd == '2':
with open(r'C:\Users\wj\Desktop\user.txt', mode='r+', encoding='utf-8-sig') as f:
res = f.readlines()
lst1 = []
lst2 = []
for i in res:
x, y = i.strip('\n\ufeff').split(':')
lst1.append(x)
lst2.append(y)
while True:
name = input('请输入用户名:')
if name in lst1:
print('已有该用户名,请重新输入')
elif name == 'q':
break
else:
psw1 = input('请输入密码:')
psw2 = input('请确认密码:')
if psw1 == psw2:
f.write('%s:%s\n' % (name, psw1))
print('注册成功')
sign = False
break
else:
print('两次密码不一致,请重新输入')
else:
print('输入的命令不存在')
day8作业
最新推荐文章于 2024-03-07 09:21:27 发布