一个python代码练习
2024-10-16 12:35:44
需求:
- 写一个用户登录窗口
- 验证输入的用户名和密码,若正确打印欢迎信息,输入错误三次则加入锁定名单。
- 锁定名单要持久化存储
# *-* 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
代码执行过程中有点问题:
在序列号存储时,不是追加写入,这次的写入会把上次的写入覆盖掉!有待研究!
最新文章
- python实现简单爬虫功能
- 多边形裁剪的Sutherland-Hodgman算法
- Design pattern---观察者模式
- Qt之事件系统
- c++爱问的面试问题
- IE去掉input的type=”text”输入内容时出现的X和type=”password”出现的眼睛图标
- HTML5 javascript 音乐 音频
- mybatis基础(中)
- 自己制作Chrome便携版实现多版本共存
- Python全栈之路----Python2与Python3
- Daily Scrum NO.10
- Docker镜像推送(push)到Docker Hub
- WP8.1学习系列(第十七章)——交互UX之输入和反馈模式
- dockerfile创建镜像及容器
- tp模型和数据库操作方法
- 为什么我会选择走 Java 这条路?
- git基本命令集合
- Solr 中 Schema 结构说明
- 如何安全地跨窗体调用Timer控件 从一个窗体调用控制另外一个窗体的控件
- android问题笔记集
热门文章
- [django]梳理drf知识点
- Ext.create细节分析
- [LeetCode] 154. Find Minimum in Rotated Sorted Array II_Hard
- Java Selenium - 几种对话框处理Alert\confirm\prompt
- OGeek CTR预估
- 判断一个url是否是图片
- Cocos Creator实现的《点我+1》
- JavaScript 深入了解对象中的属性
- Ecust DIV3 k进制 【暴力不断优化】
- html5-css边框全