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抓取京东商城手机列表url实例代码
Dec 18 Python
安装Python的web.py框架并从hello world开始编程
Apr 25 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python实现购物程序思路及代码
Jul 24 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
python标准库sys和OS的函数使用方法与实例详解
Feb 12 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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
第三节--定义一个类
2006/11/16 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
163的邮件用phpmailer发送(实例详解)
2013/06/24 PHP
WordPress中设置Post Type自定义文章类型的实例教程
2016/05/10 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
2016/08/02 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
浅述节点的创建及常见功能的实现
2016/12/15 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
JS数组交集、并集、差集的示例代码
2017/08/23 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
python中eval与int的区别浅析
2019/08/11 Python
python 读取二进制 显示图片案例
2020/04/24 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
客服实习的个人自我鉴定
2013/10/20 职场文书
社团活动总结怎么写
2014/06/30 职场文书
金融管理专业求职信
2014/07/10 职场文书
三八妇女节标语
2014/10/09 职场文书
工程部部长岗位职责
2015/02/12 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
nginx优化的六点方法
2021/03/31 Servers
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python