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爬取51job中hr的邮箱
May 14 Python
详解python如何调用C/C++底层库与互相传值
Aug 10 Python
Python2.7编程中SQLite3基本操作方法示例
Aug 09 Python
python搭建服务器实现两个Android客户端间收发消息
Apr 12 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
python画图的函数用法以及技巧
Jun 28 Python
简单了解python的一些位运算技巧
Jul 13 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
Apr 08 Python
PyTorch: Softmax多分类实战操作
Jul 07 Python
Python控制鼠标键盘代码实例
Dec 08 Python
5行Python代码实现一键批量扣图
Jun 29 Python
Python Pandas 删除列操作
Mar 16 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
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
PHP队列用法实例
2014/11/05 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
Yii2框架数据验证操作实例详解
2018/05/02 PHP
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
jQuery中:gt选择器用法实例
2014/12/29 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
js 动态生成json对象、时时更新json对象的方法
2016/12/02 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
python中enumerate函数用法实例分析
2015/05/20 Python
Python for Informatics 第11章 正则表达式(一)
2016/04/21 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
环境科学专业个人求职信
2013/09/26 职场文书
高中军训感言600字
2014/03/11 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python