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多线程编程(四):使用Lock互斥锁
Apr 05 Python
带你了解python装饰器
Jun 15 Python
Python tkinter事件高级用法实例
Jan 31 Python
单利模式及python实现方式详解
Mar 20 Python
python 实现对文件夹中的图像连续重命名方法
Oct 25 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
Form表单及django的form表单的补充
Jul 25 Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
Python中如何处理常见报错
Jan 18 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实现用户认证及管理完全源码
2007/03/11 PHP
Cannot modify header information错误解决方法
2008/10/08 PHP
php+highchats生成动态统计图
2014/05/21 PHP
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
javascript里的条件判断
2007/02/27 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
jQuery Ajax async=&gt;false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
jQuery实现穿梭框效果
2021/01/19 jQuery
深入理解Python对Json的解析
2017/02/14 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
学习雷锋精神心得体会范文
2014/03/12 职场文书
2014年党务公开方案
2014/05/08 职场文书
单位活动策划方案
2014/08/17 职场文书
股东授权委托书范本
2014/09/13 职场文书
预备党员转正材料
2014/12/19 职场文书
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL