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 23 Python
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
Python创建文件和追加文件内容实例
Oct 21 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
Sublime开发python程序的示例代码
Jan 24 Python
使用Pytorch来拟合函数方式
Jan 14 Python
tensorflow 变长序列存储实例
Jan 20 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
Python关于反射的实例代码分享
Feb 20 Python
python输出第n个默尼森数的实现示例
Mar 08 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+DBM的同学录程序(3)
2006/10/09 PHP
PHP实现货币换算的方法
2014/11/29 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
js实现每日自动换一张图片的方法
2015/05/04 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
9个让JavaScript调试更简单的Console命令
2016/11/14 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
微信小程序Getuserinfo解决方案图解
2018/08/24 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
基于js实现逐步显示文字输出代码实例
2020/04/02 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
使用Python实现简单的服务器功能
2017/08/25 Python
Python 错误和异常代码详解
2018/01/29 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
Tensorflow卷积神经网络实例进阶
2018/05/24 Python
Python中Numpy ndarray的使用详解
2019/05/24 Python
python初步实现word2vec操作
2020/06/09 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
教师申诉制度
2014/01/29 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
群众路线四风对照检查材料
2014/11/04 职场文书
受资助学生感谢信
2015/01/21 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
庆祝教师节新闻稿
2015/07/17 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
Golang ort 中的sortInts 方法
2022/04/24 Golang