需求:

  • 写一个用户登录窗口
  • 验证输入的用户名和密码,若正确打印欢迎信息,输入错误三次则加入锁定名单。
  • 锁定名单要持久化存储
 # *-* coding:utf-8 *-*
# Auth: wangxz
import pickle print("-------the login---------")
_username = "wangxz"
_passwd = 123456 def username_is_lock(name):
with open(".\login.text", "rb") as fobj:
name_list = []
try:
name_list.append(pickle.load(fobj))
except EOFError: # 这个异常没有任何影响
return None
try:
name_list.index(name)
except Exception as e:
return False # 没有在被锁定的文件中找到用户
else:
return True # 在被锁定的文件中找到用户 RESUBMIT_COUNT = 0 # 定义一个常量
while True:
if RESUBMIT_COUNT <= 3:
username = input("username: ")
if not username_is_lock(username): # 没有找到文件
passwd = input("password: ")
if _username == username and _passwd == passwd: # 登录成功
print("The login successfully!")
break
else:
RESUBMIT_COUNT += 1
if RESUBMIT_COUNT == 3: # 已经输入三次,账户锁定
print("The Warning! Your account has been locked")
with open(".\login.text", "wb") as fd: # 写入文档
pickle.dump(username, fd)
break
else:
print("Please input your account and passwd again!")
else: # 若已经在锁定文档中找到文件,则打印信息直接退出
print("Your account has benn locked.\r\nPlease connection the wxz ")
break

代码执行过程中有点问题:

  在序列号存储时,不是追加写入,这次的写入会把上次的写入覆盖掉!有待研究!

最新文章

  1. python实现简单爬虫功能
  2. 多边形裁剪的Sutherland-Hodgman算法
  3. Design pattern---观察者模式
  4. Qt之事件系统
  5. c++爱问的面试问题
  6. IE去掉input的type=”text”输入内容时出现的X和type=”password”出现的眼睛图标
  7. HTML5 javascript 音乐 音频
  8. mybatis基础(中)
  9. 自己制作Chrome便携版实现多版本共存
  10. Python全栈之路----Python2与Python3
  11. Daily Scrum NO.10
  12. Docker镜像推送(push)到Docker Hub
  13. WP8.1学习系列(第十七章)——交互UX之输入和反馈模式
  14. dockerfile创建镜像及容器
  15. tp模型和数据库操作方法
  16. 为什么我会选择走 Java 这条路?
  17. git基本命令集合
  18. Solr 中 Schema 结构说明
  19. 如何安全地跨窗体调用Timer控件 从一个窗体调用控制另外一个窗体的控件
  20. android问题笔记集

热门文章

  1. [django]梳理drf知识点
  2. Ext.create细节分析
  3. [LeetCode] 154. Find Minimum in Rotated Sorted Array II_Hard
  4. Java Selenium - 几种对话框处理Alert\confirm\prompt
  5. OGeek CTR预估
  6. 判断一个url是否是图片
  7. Cocos Creator实现的《点我+1》
  8. JavaScript 深入了解对象中的属性
  9. Ecust DIV3 k进制 【暴力不断优化】
  10. html5-css边框全