Python作业--登录接口
作业需求:
编写登陆接口
- 输入用户名密码
- 认证成功后显示欢迎信息
- 输错三次后锁定
实现思路:
1.从文件获取用户名密码
2.判断是否在黑名单中
3.验证用户名密码
成功:输出认证成功
错误:判断验证次数,超过3次写入黑名单
userinfo.txt文件格式
{"name":"alex","password":"abc123"}
{"name":"songkunhuang","password":"abc123"}
1 # -*- coding: utf-8 -*- 2 """ 3 Created on 10:32 2017/7/27 4 @author: Song 5 @E-mail: songkunhuang@163.com 6 7 """ 8 # 输入用户名密码 验证信息从文件读取 9 # 认证成功显示欢迎信息 10 # 输错三次,锁定用户 保存到文件 黑名单 11 12 13 # 解析用户文件 json eval 14 userinfo_file = open("userinfo.txt","r") 15 user_list = [] 16 for user in userinfo_file.readlines(): 17 user = user.replace("\n", "") 18 user_list.append(eval(user)) 19 20 # 读取黑名单 21 blackuserlist_file = open("blackuserlist.txt","w+") 22 black_list = [] 23 for blackuser in blackuserlist_file: 24 blackuser = blackuser.replace("\n", "") 25 black_list.append(blackuser) 26 27 def sucess(name): 28 print("welcome",name) 29 exit() 30 31 count = 3 32 flag = 0 33 while count > 0: 34 username_input = input("Username:") 35 password_input = input("Password:") 36 if username_input in black_list: 37 print("账户已经被锁定") 38 else: 39 for i in user_list: 40 if username_input == i.get("name") and password_input == i.get("password"): 41 flag = 1 42 print("认证成功") 43 sucess(name=username_input) 44 break 45 46 if flag == 0: 47 count = count - 1 48 if count > 0: 49 print("认证失败,你还可以尝试 %d 次" % count) 50 else: 51 for i in user_list: 52 if username_input == i.get("name"): 53 blackuserlist_file.write("".join([username_input, "\n"])) 54 print("%s 账户已经锁定" % username_input) 55 print("无法尝试") 56 57 userinfo_file.close() 58 blackuserlist_file.close()