Python3模拟登录操作实例分析


Posted in Python onMarch 12, 2019

本文实例讲述了Python3模拟登录操作。分享给大家供大家参考,具体如下:

模拟登录_要求:

1. 用户输入账号密码进行登录
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户

逻辑图:

Python3模拟登录操作实例分析

代码:

#!/usr/bin/env python3
# Author:Robert
# --*-- coding: utf-8 --*--
count = 0  #记录试错次数,计数项赋初始值
load = True  #完成功能后退出,赋初始值
file = open("用户信息文件.txt",'r',encoding='utf-8')
file_lock = open("锁定用户信息文件.txt",'r+',encoding='utf-8')
line = eval(file.readline())  #将正确信息中的字符串转换成字典(原字符串为字典格式)
line_list = eval(file_lock.readline())  #将正确信息中的字符串转换成列表(原字符串为列表格式)
def out():  #定义重复代码,目的是帮助跳出while循环并关闭已打开的文档
  global load
  load = False  #赋值load,为了跳出while循环
  file_lock.close()  #关闭正确用户信息文档
  file.close()  #关闭锁定用户信息文档
while load:  #判断是否已完成功能
  name = input("请输入用户名:")
  password = input("请输入密码:")
  if name in line and name not in line_list:  #判断用户名是否正确,是否已被锁定
    while count < 3:
      if password == line[name]:  #判断用户名是否对应正确的密码
        print("您已成功登录")
        out()  #调用定义out方法
        break
      else:  #说明未输入的正确的密码
        count +=1
        msg_count = '第%s次密码输入错误\n'%(count)  #提示输入错误次数
        print(msg_count)
        if count < 3:  #小于三次错误的输入,可以重新输入
          password = input("密码错误,请重新输入密码:")  #重新输入密码
        elif count == 3:  #判断是否已输错三次
          print("已输错3次,账号已锁定")
          line_list.append(name)  #将已锁定信息加入锁定元组中
          file_lock.seek(0)  #输入指针移到开头,如果不移动会产生多个元组
          file_lock.write(str(line_list))  #写入锁定信息
          file_lock.tell()  #获取当前的输入指针位置,如果不获取会产生多个元组
          out()
          break
  elif name in line_list:  #判断用户名是否在已锁定用户名中
    print("该用户名已被锁定")
    out()
    break
  else:  #说明用户名不在正确用户名信息中
    print("该用户名不存在")
    out()

用户信息文件.txt

{"name":"password","XiaoMing":"123456","Robert":"234567","Alex":"345678","haha":"123","hahage":"123","hahage2":"123","hahage3":"123"}

锁定用户信息文件.txt

['name']

更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用python实现strcmp函数功能示例
Mar 25 Python
Python算法应用实战之栈详解
Feb 04 Python
python数据结构之链表的实例讲解
Jul 25 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
Jan 17 Python
python列表的增删改查实例代码
Jan 30 Python
python向已存在的excel中新增表,不覆盖原数据的实例
May 02 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
Jun 11 Python
Python中的枚举类型示例介绍
Jan 09 Python
对Python信号处理模块signal详解
Jan 09 Python
Django接收自定义http header过程详解
Aug 23 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 #Python
Python 函数返回值的示例代码
Mar 11 #Python
浅谈Python批处理文件夹中的txt文件
Mar 11 #Python
Python数据报表之Excel操作模块用法分析
Mar 11 #Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 #Python
Python实现截取PDF文件中的几页代码实例
Mar 11 #Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 #Python
You might like
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
PHP Hash算法:Times33算法代码实例
2015/05/13 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
JavaScript库 开发规则
2009/01/31 Javascript
js控制frameSet示例
2013/09/10 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
JS中递归函数
2016/06/17 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
npm的lock机制解析
2019/06/20 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python中实现数组和列表读取一列的方法
2018/04/03 Python
pip安装时ReadTimeoutError的解决方法
2018/06/12 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
Python格式化字符串f-string概览(小结)
2019/06/18 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
Python银行系统实战源码
2019/10/25 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
公司员工的自我评价范例
2013/11/01 职场文书
《油菜花开了》教学反思
2014/02/22 职场文书
会计学习心得体会
2014/09/09 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers
Python实现文字pdf转换图片pdf效果
2022/04/03 Python