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数据类型_字符串常用操作(详解)
May 30 Python
Python模拟三级菜单效果
Sep 11 Python
对numpy中数组转置的求解以及向量内积计算方法
Oct 31 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
Pyqt5 基本界面组件之inputDialog的使用
Jun 25 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
mac使用python识别图形验证码功能
Jan 10 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
Feb 26 Python
python 实现弹球游戏的示例代码
Nov 17 Python
Python安装Bs4的多种方法
Nov 28 Python
python如何在word中存储本地图片
Apr 07 Python
python文件名批量重命名脚本实例代码
Apr 22 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
thinkPHP内置字符串截取函数用法详解
2016/11/15 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
JavaScript CSS修改学习第五章 给“上传”添加样式
2010/02/19 Javascript
jquery 获取自定义属性(attr和prop)的实现代码
2012/06/27 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
JS实现来回出现文字的状态栏特效代码
2015/10/31 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
实现div内部滚动条滚动到底部和顶部的代码
2017/11/15 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
继承公证书
2014/04/09 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang
Spring整合Mybatis的全过程
2021/06/28 Java/Android