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中请使用isinstance()判断变量类型
Aug 25 Python
详解Python Socket网络编程
Jan 05 Python
Python和C/C++交互的几种方法总结
May 11 Python
Python基于贪心算法解决背包问题示例
Nov 27 Python
使用python存储网页上的图片实例
May 22 Python
在Python中使用Neo4j的方法
Mar 14 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
python实时检测键盘输入函数的示例
Jul 17 Python
对django中foreignkey的简单使用详解
Jul 28 Python
python操作cfg配置文件方式
Dec 22 Python
如何使用Python破解ZIP或RAR压缩文件密码
Jan 09 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
Dec 31 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 curl_setopt()函数实例代码与参数分析
2011/06/02 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
laravel实现批量更新多条记录的方法示例
2017/10/22 PHP
thinkphp诸多限制条件下如何getshell详解
2020/12/09 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
浅谈JavaScript中的作用域和闭包问题
2015/07/07 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
2018/08/24 Javascript
VUE渲染后端返回含有script标签的html字符串示例
2019/10/28 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
Python计算三维矢量幅度的方法
2015/06/15 Python
python模拟Django框架实例
2016/05/17 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
python 多线程将大文件分开下载后在合并的实例
2018/11/09 Python
Python while true实现爬虫定时任务
2020/06/08 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
用CSS3打造HTML5的Logo(实现代码)
2016/06/16 HTML / CSS
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
自我评价的正确写法
2013/09/19 职场文书
本科毕业生的求职信范文
2013/11/20 职场文书
勤俭节约倡议书
2014/04/14 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
爱心捐赠活动简讯
2015/07/20 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python
详解CSS中的特指度和层叠问题
2021/07/15 HTML / CSS
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android