python之路-基础篇-功课一 编写登陆接口
python之路-基础篇-作业一 编写登陆接口
作业需求:
① 输入用户名密码
② 认证成功后显示欢迎信息
③ 输错三次后锁定
流程图:
图片不太清楚,详图请挪脚至http://pan.baidu.com/s/1pKqlXQr
代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- # file_name :user_login.py lock = 0 lock_value = 'no' lock_dict = {} user_dict = {} f1 = open('lock.txt', 'r+') f2 = open('user.txt', 'r') for i in f1.readlines(): user, number = i.strip().split() lock_dict[user] = number for i in f2.readlines(): user, passwd = i.strip().split() user_dict[user] = passwd while lock < 3: # 输入次数小于3次进入循环 username = input("请输入用户名:") passwd = input("请输入密码:") if lock_dict.get(username): # username 在lock.txt中存在 if int(lock_dict.get(username)) >= 3: print('账号已被锁定,请重新输入!') lock += 1 continue if user_dict.get(username): # username 在user_dict中存在 if passwd == user_dict.get(username): # 如果密码正确 print('登陆成功') break else: # 密码不正确 if lock_dict.get(username): # username在lock_dict中存在 lock_dict[username] = int(lock_dict[username]) + 1 lock_value = 'yes' else: # username在lock_dict中不存在 lock_dict[username] = 1 lock_value = 'yes' else: # username 在user_dict中不存在 lock_value = 'yes' if lock_value == 'yes': print('账号密码错误, 请重新输入') lock += 1 continue else: # 输入次数超过3次 print('对不起,输入次数已经超过三次,已达上限,拜拜!') # 将lock.txt 清空 f1.seek(0) f1.truncate(0) for i in lock_dict: username = i number = lock_dict[i] f1.write('%s\t%s\n' %(username, number)) f1.close() f2.close()
辅助文件:
① user.txt zhangcong 123 admin 123 zhangsan 123 ② lock.txt为空