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实现的归并排序算法示例
Nov 21 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
Python Tkinter模块实现时钟功能应用示例
Jul 23 Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
在Pycharm中调试Django项目程序的操作方法
Jul 17 Python
python脚本执行CMD命令并返回结果的例子
Aug 14 Python
Python流程控制 while循环实现解析
Sep 02 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 Python
基于Python pyecharts实现多种图例代码解析
Aug 10 Python
opencv检测动态物体的实现
Jul 21 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
PHP代码优化技巧小结
2015/09/29 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
jquery修改属性值实例代码(设置属性值)
2014/01/06 Javascript
jQuery学习笔记之 Ajax操作篇(三) - 过程处理
2014/06/23 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
js性能优化技巧
2015/11/29 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
[51:50]完美世界DOTA2联赛 Magma vs GXR 第一场 11.07
2020/11/10 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
python的pdb调试命令的命令整理及实例
2017/07/12 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
如何理解Python中的变量
2020/06/01 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
航空大学应届生求职信
2013/11/10 职场文书
客服专员岗位职责范本
2013/11/29 职场文书
如何写一份好的自荐信
2014/01/02 职场文书
教师节促销活动方案
2014/02/14 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
安全保证书
2015/01/16 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
高二英语教学反思
2016/03/03 职场文书
“爱眼护眼,提前预防近视”倡议书3篇
2019/10/30 职场文书