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批量生成本地ip地址的方法
Mar 23 Python
Python实现大文件排序的方法
Jul 10 Python
Python中set与frozenset方法和区别详解
May 23 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
PyQt5实现类似别踩白块游戏
Jan 24 Python
python使用matplotlib画柱状图、散点图
Mar 18 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
python提取照片坐标信息的实例代码
Aug 14 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
Python selenium绕过webdriver监测执行javascript
Apr 12 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扩展图文教程
2008/12/12 PHP
php 类自动载入的方法
2015/06/03 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
JavaScript 面向对象编程(1) 基础
2010/05/18 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
jquery结婚电子请柬特效源码分享
2015/08/21 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
Vue-component全局注册实例
2018/09/06 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python中list列表的高级函数
2016/05/17 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
使用python装饰器计算函数运行时间的实例
2018/04/21 Python
Python的UTC时间转换讲解
2019/02/26 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
思想品德自我评价
2014/02/04 职场文书
公司股权转让协议书
2014/04/12 职场文书
暑期教师培训方案
2014/06/07 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
故宫的导游词
2015/01/31 职场文书
mysql 联合索引生效的条件及索引失效的条件
2021/11/20 MySQL
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
Java实现简单小画板
2022/06/10 Java/Android