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多线程、异步+多进程爬虫实现代码
Feb 17 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
python操作redis方法总结
Jun 06 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
详解Python做一个名片管理系统
Mar 14 Python
Python实现Restful API的例子
Aug 31 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
keras 获取某层的输入/输出 tensor 尺寸操作
Jun 10 Python
地图可视化神器kepler.gl python接口的使用方法
Dec 22 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 Python
python实现ROA算子边缘检测算法
Apr 05 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
php5数字型字符串加解密代码
2008/04/24 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
模板引擎正则表达式调试小技巧
2011/07/20 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
jquery实现网页查找功能示例分享
2014/02/12 Javascript
JS限制文本框只能输入数字和字母方法
2015/02/28 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python字典多条件排序方法实例
2014/06/30 Python
python之wxPython应用实例
2014/09/28 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
Python collections模块使用方法详解
2019/08/28 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
python全局变量引用与修改过程解析
2020/01/07 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
蔻驰法国官网:COACH法国
2018/11/14 全球购物
大学生村官事迹材料
2014/01/21 职场文书
服装电子商务创业计划书
2014/01/30 职场文书
《长相思》听课反思
2014/04/10 职场文书
收入证明申请书
2015/06/12 职场文书
党员身份证明材料
2015/06/19 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
Django实现翻页的示例代码
2021/05/24 Python
Python+Tkinter制作专属图形化界面
2022/04/01 Python