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内置的字符串处理函数整理
Jan 29 Python
python读写文件操作示例程序
Dec 02 Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
基于python批量处理dat文件及科学计算方法详解
May 08 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
Python使用Pandas对csv文件进行数据处理的方法
Aug 01 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
Numpy 多维数据数组的实现
Jun 18 Python
Matplotlib配色之Colormap详解
Jan 05 Python
python中最小二乘法详细讲解
Feb 19 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 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中的时间处理
2006/10/09 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
select 控制网页内容隐藏于显示的实现代码
2010/05/25 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
Python设计模式编程中解释器模式的简单程序示例分享
2016/03/02 Python
Python 加密的实例详解
2017/10/09 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
python正则表达式的懒惰匹配和贪婪匹配说明
2020/07/13 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
全球最大的跑步用品商店:Road Runner Sports
2016/09/11 全球购物
Champion官网:美国冠军运动服装
2017/01/25 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
自动化专业个人求职信范文
2013/11/29 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
个性发展自我评价
2014/02/11 职场文书
入党积极分子自我鉴定
2014/02/18 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
爱情保证书大全
2014/04/29 职场文书
介绍信怎么写
2015/01/30 职场文书
中秋联欢会主持词
2015/07/04 职场文书
Pytorch GPU内存占用很高,但是利用率很低如何解决
2021/06/01 Python