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合并字符串的3种方法
May 21 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python网络爬虫出现乱码问题的解决方法
Jan 05 Python
Python 装饰器深入理解
Mar 16 Python
python去掉空白行的多种实现代码
Mar 19 Python
对python读写文件去重、RE、set的使用详解
Dec 11 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
python实现简单的购物程序代码实例
Mar 03 Python
使用PyCharm安装pytest及requests的问题
Jul 31 Python
Python timeit模块原理及使用方法
Oct 10 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 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
PHP中常用数组处理方法实例分析
2008/08/30 PHP
在PHP中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
分享一下贝贝成长进度的php代码
2012/09/14 PHP
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
代码生成器 document.write()
2007/04/15 Javascript
DHTML Slide Show script图片轮换
2008/03/03 Javascript
jQuery TextBox自动完成条
2009/07/22 Javascript
javascript 多级checkbox选择效果
2009/08/20 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
[06:16]《DAC最前线》之地区预选赛全面回顾
2015/01/19 DOTA
python安装numpy&安装matplotlib& scipy的教程
2017/11/02 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
python基础 range的用法解析
2019/08/23 Python
python MultipartEncoder传输zip文件实例
2020/04/07 Python
Django自关联实现多级联动查询实例
2020/05/19 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
大学生年度自我鉴定
2013/10/31 职场文书
仓管员岗位职责范文
2013/11/08 职场文书
会计自我鉴定
2014/02/04 职场文书
个人查摆剖析材料
2014/02/04 职场文书
董事长助理工作职责
2014/06/08 职场文书
岗位聘任报告
2015/03/02 职场文书
停电通知范文
2015/04/16 职场文书
房租涨价通知
2015/04/23 职场文书
地震捐款简报
2015/07/21 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
CSS中妙用 drop-shadow 实现线条光影效果
2021/11/11 HTML / CSS