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每次处理固定个数的字符的方法总结
Jan 29 Python
Python的ORM框架SQLObject入门实例
Apr 28 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
python常规方法实现数组的全排列
Mar 17 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
Python实现的生成格雷码功能示例
Jan 24 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
python 多个参数不为空校验方法
Feb 14 Python
Django models filter筛选条件详解
Mar 16 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 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
php批量上传的实现代码
2013/06/09 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
2013/02/25 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
基于webpack-hot-middleware热加载相关错误的解决方法
2018/02/22 Javascript
用vue快速开发app的脚手架工具
2018/06/11 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:08:30]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant BO3 第一场 2月28日
2021/03/11 DOTA
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
Python与Java间Socket通信实例代码
2017/03/06 Python
python中的&&及||的实现示例
2019/08/07 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?
2016/11/20 面试题
公务员职业生涯规划书范文  
2014/01/19 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
Mysql关于数据库是否应该使用外键约束详解说明
2021/10/24 MySQL