需求:

让用户输入用户名密码
认证成功后显示欢迎信息
输错三次后退出程序
可以支持多个用户登录 (提示,通过列表存多个账户信息)
用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

代码如下:

 # -*- coding: utf-8 -*-
# __date__ = 3/12/2018 count = 0
users = {'chfang':'', 'alice':'abcde', 'admin':'admin'} #利用字典存储多个用户名/密码
_name = input("Username: ")
if _name in users: #判断用户输入的用户名是否在字典中
lock_file_name = _name + "_lock.txt" #根据用户名读取对应文件中的锁定状态码(0表示允许登录,1表示帐号被锁定)
with open(lock_file_name, "r") as fp:
_lock = fp.read()
if _lock == "":
while count < 3:
count += 1
_passwd = input("Password: ")
if _passwd == users.get(_name): #根据用户名在从字典中取出其对应的密码
print("登录成功!欢迎%s" % _name)
with open(lock_file_name, "w") as f1:
f1.write("")
break
else:
print("登录失败!剩余重试次数%d" % (3 - count))
with open(lock_file_name, "w") as f1:
f1.write("")
elif _lock == "":
print("您的账户已被锁定,请联系管理员!")
else:
print("状态文件不能为空,请联系管理员!")
else:
print("用户不存在!")
print("-----------------------------") #仅作结束提示用途
基础功能均能实现。

Python学习之登陆认证的更多相关文章

  1. python模块app登陆认证(M2Crypto数字证书加密)

    需求: 1.通过数字证书,非对称加密方式传送对称秘钥给服务端 2.用户名.密码使用对称秘钥加密,发送服务端验证 3.传送数据使用字节流方式 实现思路: 1.了解python的struct模块,用于字节 ...

  2. python学习入门第一天总结

    虽然之前自己也看过许多关于python的视频,但一直没有动力与勇气,所以未能坚持且也没有学得这么深刻,这次希望通过python自动化培训,能够彻底改变自己,通过第一天的python学习,自己学到了许多 ...

  3. Python学习day5作业

    目录 Python学习day5作业 ATM和购物商城 1. 程序说明 2. 基本流程图 3. 程序测试帐号 4. 程序结构: 5. 程序测试 title: Python学习day5作业 tags: p ...

  4. Python学习笔记(十三)

    Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...

  5. Python学习笔记(十)

    Python学习笔记(十): 装饰器的应用 列表生成式 生成器 迭代器 模块:time,random 1. 装饰器的应用-登陆练习 login_status = False # 定义登陆状态 def ...

  6. Python学习计划

    ---恢复内容开始--- Python学习计划   https://edu.csdn.net/topic/python2?utm_source=blog4   匠人之心,成就真正Python全栈工程师 ...

  7. DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

    DjangoRestFramework学习三之认证组件.权限组件.频率组件.url注册器.响应器.分页组件   本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分 ...

  8. Python学习笔记,day1

    Python学习第一天 一.变量 变量定义的规则: 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名['and', 'as', 'assert', ...

  9. {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证

    Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...

随机推荐

  1. CentOS7安装Nginx实现API网关

    参考 http://nginx.org/ http://nginx.org/en/linux_packages.html#stable https://www.npmjs.com/package/js ...

  2. Eureka与ZooKeeper 的比较

    Eureka的优势 1.在Eureka平台中,如果某台服务器宕机,Eureka不会有类似于ZooKeeper的选举leader的过程:客户端请求会自动切换到新的Eureka节点:当宕机的服务器重新恢复 ...

  3. lnmp架构-负载均衡

    一.几个基本概念 1.pv 值 pv 值(page views):页面的浏览量 概念:一个网站的所有页面,在一天内,被浏览的总次数.(大型网站通常是上千万的级别) 2.uv值 uv值(unique v ...

  4. Struts2_Global_Results_全局结果集

    struts.xml文件配置 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts ...

  5. Tomcat 中部署 web 应用 ---- Dubbo 服务消费者 Web 应用 war 包的部署

    使用Maven构建Dubbo服务的可执行jar包 Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存 ...

  6. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  7. 解压war包

    unzip cat-alpha-3.0.0.war -d /tmp/test 说明:-d指定解压的路径和文件,文件名不存在会自动创建

  8. 酷狗音乐PC端怎么使用听歌识曲功能?

    生活中很多时候会听到一些美妙的音乐,耳熟或者动听却不知道它的名字.就像第一眼看到你心动的那个她却不知她叫什么.移动端有酷狗音乐的听歌识曲.现在PC端也有了相同的功能,每当我们看到一部精彩影视剧听到美妙 ...

  9. ListView、DataGrid 不显示列标题

    <!--ListView不显示列标题--> <Style TargetType="{x:Type GridViewColumnHeader}"> <S ...

  10. Python-Django框架学习笔记——第二课:Django的搭建

    Django 环境搭建 一. 版本选择 Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3. Django 1.6.x 支持 Pytho ...