Python文件操作模拟用户登陆代码实例


Posted in Python onJune 09, 2020

题目要求

1、输入用户名和密码后回车

2、密码输入错误,给出提示,并选择是否重新输入

3、密码输入错误三次后,用户被锁定,无法继续登陆

构思

1、用户输入账号和密码后,需要判断账号是否存在

2、判断账号是否被禁用(错误次数大于三次)

3、判断账号密码是否正确

4、不同的错误给出不同的提示

5、每输入错一次,文档中的错误次数需要更新

6、如果三次以内用户登陆成功,密码原来的错误次数被重置

题目完成步骤

1、文档的编写

考虑到数据的存储问题,决定将账号、密码、错误次数进行分行存储,三行为一组用户信息

Python文件操作模拟用户登陆代码实例

2、代码编写

go = True
while go:
  # 用来判断账号是否存在
  no_existence_flag = True
  # 用来判断是否输入正确
  no_flag = True
  # 用来判断是否已经被封
  disable_flag = True
  # 用来判断次数是否已经超过限制
  account = input("account:")
  password = input("password:")
  # 判断账号是否存在(自己写入已存在用户的账号密码)
  file = open("C:/Users/Lenovo/Desktop/user.txt","r")
  # 用于拼接文本内容
  file_data = ""
  while True:
    line = file.readline()
    if not line:
      break
    file_data += line
    line_content = line.strip()
    # 判断是否存在账号
    if account == line_content:
      no_existence_flag = False
      true_password = file.readline()
      file_data += true_password
      true_password_content = true_password.strip()
      disable_flag_line = file.readline()
      disable_flag_num = int(disable_flag_line.strip())
      # 判断账号是否被禁用
      if disable_flag_num != 3:
        print("It is not disable!",disable_flag_num)
        disable_flag = False
        # 判断密码是否正确
        if password == true_password_content:
          no_flag = False
          print("Welcome in this system,{account}!".format(account = account))
          go = False
          disable_flag_line = disable_flag_line.replace(str(disable_flag_num),str(0))
          file_data += disable_flag_line
        else:
          disable_flag_line = disable_flag_line.replace(str(disable_flag_num),str(disable_flag_num+1))
          file_data += disable_flag_line
      else:
        file_data += file.readline()
    else:
      file_data += file.readline()
      file_data += file.readline()
  file.close()
  # 账号不存在的报错
  if no_existence_flag:
    print("This account is not existence!")
    print("Do you want to try it again......")
    flag = input("Please input you think:")
    if flag == "N":
      go = False
    continue
  # 账号被禁用的报错
  if disable_flag:
    print("You account is disable,please go home by youself!")
    print("Do you want to try it again......")
    flag = input("Please input you think:")
    if flag == "N":
      go = False
    continue
  # 账号密码错误的报错
  if no_flag:
    file = open("C:/Users/Lenovo/Desktop/user.txt","w")
    print(file_data)
    file.write(file_data)
    file.close()
    print("Your password is not right,please try it again!")
    print("Do you want to try it again......")
    flag = input("Please input you think:")
    if flag == "N":
      go = False
  # 重置输入次数
  else:
    file = open("C:/Users/Lenovo/Desktop/user.txt","w")
    print(file_data)
    file.write(file_data)
    file.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
详解Python3.1版本带来的核心变化
Apr 07 Python
基于Python的接口测试框架实例
Nov 04 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
Python 忽略warning的输出方法
Oct 18 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
Oct 15 Python
Python数据模型与Python对象模型的相关总结
Jan 26 Python
Python标准库之typing的用法(类型标注)
Jun 02 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 Python
在 Python 中利用 Pool 进行多线程
Apr 24 Python
pyCharm 实现关闭代码检查
Jun 09 #Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 #Python
python 元组的使用方法
Jun 09 #Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 #Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 #Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 #Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 #Python
You might like
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
php图片加中文水印实现代码分享
2012/10/31 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
jquery 的 $("#id").html() 无内容的解决方法
2010/06/07 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
Bootstrap CSS组件之分页(pagination)和翻页(pager)
2016/12/17 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
决策树剪枝算法的python实现方法详解
2019/09/18 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
奥巴马就职演讲稿
2014/05/15 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
美术教师求职信范文
2015/03/20 职场文书
MySQL数据库 安全管理
2022/05/06 MySQL