use=[] ##定义一个空的列表 将黑名单文件user.log中的用户名写入列表里
dic={'gaoqiang':'123456','yanghai':'147258','laowan':'123456','laogao':'789456','laofeng':'147369'} ##账户信息 以字典形式存放 此处可以写成从txt文件中查询 写入字典
luck_num=0 ##初始一个值 通过输入一次密码计数一次来实现三次拉黑名单功能
dic_list=list(dic.keys()) ##将名单以列表形式显示出来
while True:
user = input("请输入用户名:")
f = open('user.log', 'r')
for line in f.readlines(): #从user.log中读取黑名单中的用户名
line = line.strip()
use.append(line) #将结果添加到空的use列表里
f.close()
#print(use)
if user in dic_list and user not in use: #开始判断输入的用户名是否在dict_list中 同时判断是否在黑名单里
while True:
password=input('请输入密码:') #以上俩条件都满足 开始输密码 这块需要将字典中的 密码加'' 否则 int类型和字符串类型无法比较 或者在input那快加int()
while not password.strip(): #如果输入空 提示继续输入密码
password = input('请再次输入密码:')
luck_num += 1 #输入一次密码 初始值加1
p = dic[user] #找出输入账户对应的密码
if password == p:
print('welcome in!!')
quit() #退出程序
elif luck_num > 2:
f = open('user.log', 'a') #输入次数超过三次 则将输入的user写入user.log中
f.write(user + '\n')
f.close()
print('您的帐号已被禁用 有问题联系客服12306')
quit() #退出程序
else:
print('您的密码有误请重新输入')
elif user in dic and user in use:
print(('您的账号%s已经被禁用,请更换') % user)
f.close()
else:
print('您输入的帐号有误,请重新输入')