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 19 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
Python设计模式之工厂方法模式实例详解
Jan 18 Python
深入解析Python小白学习【操作列表】
Mar 23 Python
Python一行代码实现快速排序的方法
Apr 30 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
Python如何获取文件指定行的内容
May 27 Python
python实现简单贪吃蛇游戏
Sep 29 Python
通过代码简单了解django model序列化作用
Nov 12 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 Python
python开发飞机大战游戏
Jul 15 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获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
拖动一个HTML元素
2006/12/22 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
详解JavaScript 新语法之Class 的私有属性与私有方法
2019/04/23 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
[01:12:44]VG vs Mineski Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python通过索引遍历列表的方法
2015/05/04 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
详解python中的线程
2018/02/10 Python
python3调用R的示例代码
2018/02/23 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
介绍Java的内部类
2012/10/27 面试题
开业庆典邀请函
2014/01/08 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
2015大学迎新标语
2015/07/16 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL