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实现的十进制小数与二进制小数相互转换功能
Oct 12 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
python 实现一次性在文件中写入多行的方法
Jan 28 Python
python通过http下载文件的方法详解
Jul 26 Python
python 叠加等边三角形的绘制的实现
Aug 14 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
Feb 07 Python
简单了解Django项目应用创建过程
Jul 06 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
解决python3中os.popen()出错的问题
Nov 19 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的一个登录的类 [推荐]
2007/03/16 PHP
php读取xml实例代码
2010/01/28 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
phpQuery占用内存过多的处理方法
2013/11/13 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
解决laravel session失效的问题
2019/10/14 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
Prototype源码浅析 String部分(一)之有关indexOf优化
2012/01/15 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
js模糊查询实例分享
2016/12/26 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
微信小程序 本地图片按照屏幕尺寸处理
2017/08/04 Javascript
angular 组件通信的几种实现方式
2018/07/13 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
JavaScript 实现下雪特效的示例代码
2020/09/09 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
C#可否对内存进行直接的操作
2015/02/26 面试题
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
质量工程师岗位职责
2013/11/16 职场文书
出纳员岗位职责
2014/03/13 职场文书
公务员诚信承诺书
2014/05/26 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
大学生党员个人总结
2015/02/13 职场文书
幼儿园安全管理制度
2015/08/05 职场文书