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 pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
Python实现简单过滤文本段的方法
May 24 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
Python 利用内置set函数对字符串和列表进行去重的方法
Jun 29 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
python datetime中strptime用法详解
Aug 29 Python
Python中 CSV格式清洗与转换的实例代码
Aug 29 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
python实现画图工具
Aug 27 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实现博客,论坛图片防盗链的方法
2016/10/15 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
vue2项目使用sass的示例代码
2017/06/28 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
利用JS代码自动删除稿件的普通弹幕功能
2019/09/20 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
Vue前端项目部署IIS的实现
2020/01/06 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python Socket传输文件示例
2017/01/16 Python
python3通过selenium爬虫获取到dj商品的实例代码
2019/04/25 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
python将logging模块封装成单独模块并实现动态切换Level方式
2020/05/12 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
Python使用tkinter制作在线翻译软件
2021/02/22 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
电话客服专员岗位职责
2014/06/28 职场文书
申报材料格式
2014/12/30 职场文书
优秀高中学生评语
2014/12/30 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers