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 中的列表解析和生成表达式
Mar 10 Python
Python3.2中Print函数用法实例详解
May 19 Python
python处理Excel xlrd的简单使用
Sep 12 Python
简单了解Python中的几种函数
Nov 03 Python
python实现kNN算法
Dec 20 Python
Django中反向生成models.py的实例讲解
May 30 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
Oct 22 Python
在pycharm中实现删除bookmark
Feb 14 Python
python 读取、写入txt文件的示例
Sep 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
关于js与php互相传值的介绍
2013/06/25 PHP
PHP学习笔记之session
2018/05/06 PHP
javascript脚本调试方法小结
2008/11/24 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
JS正则表达式验证密码强度
2020/03/18 Javascript
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Django框架中方法的访问和查找
2015/07/15 Python
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python取代netcat过程分析
2018/02/10 Python
Python中Selenium模块的使用详解
2020/10/09 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
10分钟理解CSS3 FlexBox弹性布局
2018/12/20 HTML / CSS
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
《陋室铭》教学反思
2014/02/26 职场文书
开学寄语大全
2014/04/08 职场文书
2015年信访维稳工作总结
2015/04/07 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
创业计划书之熟食店
2019/10/16 职场文书
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL