python作业设计:输入用户名密码,认证成功后显示欢迎信息,输错三次后锁定

时间:2021-04-03 16:23:42
作业需求:
1.输入用户名密码
2.认证成功后显示欢迎信息
3.输错三次后锁定 实现思路:
1.判断用户是否在黑名单,如果在黑名单提示账号锁定。
2.判断用户是否存在,如果不存在提示账号不存在。
3.判断账号密码是否正确,如果正确登录进去。如果不正确有三次输入密码机会。三次全部输错,账号锁定。
 新建两个文件 account.txt和account_lock.txt ,在account中输入用户名密码 aaa 123
1 # Author:oliver
import sys,os
count = 0
name_list = []
while count < 3:
name = input("请输入用户名:")
lock_file = open('account_lock.txt','r+')
lock_list = lock_file.readlines() for lock_line in lock_list:
lock_line = lock_line.strip('\n')
if name == lock_line:
sys.exit('用户 %s 已经被锁定,请联系管理员解锁.' % name)
user_file = open('account.txt','r')
user_list = user_file.readlines()
for user_line in user_list:
(user,password) = user_line.strip('\n').split()
name_list.append(user_line)
print("--------", name_list)
if name == user:
i = 0
while i < 3:
passwd = input('请输入密码:')
if passwd == password:
print('欢迎 %s 登录' % name)
sys.exit(0)
else:
if i < 2:
print('用户 %s 密码错误,请重新输入,还有 %d 次机会.' % (name,2 - i))
i += 1
else:
lock_file.write(name + '\n')
sys.exit('用户 %s 输错密码三次,用户将被锁定并退出,请联系管理员解锁.' % name)
else:
pass
else:
if count < 2:
print('用户 %s 不存在,请重新输入,还有 %d 次机会' % (name,2 - count))
count += 1
else:
sys.exit('用户 %s 不存在,退出' % name) lock_file.close()
user_file.close()