项目二:模拟博客园登录

声明:

项目代码纯粹本人自己编写,无任何抄袭、转载等情况,所以写的很low,仅供大家参考,有不懂的随时评论留言

项目要求:

  1. 首先程序启动,显示下面内容供用户选择:

    1. 请登录
    2. 请注册
    3. 进入文章页面
    4. 进入评论页面
    5. 进入日记页面
    6. 进入收藏页面
    7. 注销账号
    8. 退出整个程序
  2. 必须实现的功能:

    1. 注册功能要求:

      • 首先判断用户名在userinfo.txt表中存在不在,存在就不能进行注册

      • 当注册的用户名不存在的时候将用户名、密码要记录在文件中。
      • 用户名要求:不能有特殊字符并且确保用户名唯一。
      • 密码要求:长度要在6~14个字符之间。

    2. 登录功能要求:

      • 用户输入用户名、密码进行登录验证。
      • 登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,提示用户进行登录!
      • 用户名和密码不一致,只有三次登录机会,三次过后提示用户名被锁定,请联系管理员!并终止循环
      • 当用户名错误三次,再次运行程序.登录锁定的账号继续提示用户名被锁定,请联系管理员!
    3. 进入文章页面要求:

      • 提示欢迎xx进入文章页面。(xx是当前登录的用户名)
    4. 进入评论页面要求:

      • 提示欢迎xx进入评论页面
    5. 进入日记页面要求:

      • 提示欢迎xx进入日记页面。
    6. 进入收藏页面要求:

      • 提示欢迎xx进入收藏页面。
    7. 注销账号要求:

      • 不是退出整个程序,而是将已经登录的状态变成未登录状态(在次访问3~7选项时需要重新登录)
    8. 退出整个程序要求:

      • 就是结束整个程序

源码:

def register():"""功能:账号密码注册实现:判断用户输入内容符合注册要求后循环查看文件中有无输入信息,若没有将信息加入文件:return: None"""flag1 = Truewhile flag1:username = input("请输入账号(不能含有特殊字符):")password = input("请输入密码(6~14字符):")if not username.isalnum():print("账号不能含有特殊字符,请重新输入!")elif not 6 <= len(password) <= 14:print("密码长度不符,请重新输入!")else:f1.seek(0)for el in f1:if username in el.split(":")[1]:print("该账号已存在")breakelse:print("注册成功!")f1.write(f"\n{0}:{username}:{password}")flag1 = Falsedef login():"""功能:账号密码登录实现:输入三次错误锁定账号:return: str ——> None"""global flag,username,visitcount = 3while count:username = input("请输入账号:")password = input("请输入密码:")f1.seek(0)for el in f1:num, user, pwd = el.strip().split(":")if num == "1":print("账号已被锁定!请联系管理员!")returnelif username == user:if password == pwd:print("登陆成功!")visit = Truereturnelse:count -= 1print(f"账号密码错误,请重新输入(剩余次数:{count})")breakelse:print("账号不存在,请先注册!")else:print("账号已被锁定!请联系管理员!")f1.seek(0)for el in f1:if el.strip().split(":")[1] == username:f2.write(el.replace("0", "1", 1))else:f2.write(el)flag = Truedef article():"""功能:进入文章页面实现:格式化输出:return: None"""print(f"欢迎{username}进入文章页面")def comment():"""功能:进入文章评论页面实现:格式化输出:return: None"""print(f"欢迎{username}进入评论页面")def diary():"""功能:进入文章日记页面实现:格式化输出:return: None"""print(f"欢迎{username}进入日记页面")def collect():"""功能:进入文章收藏页面实现:格式化输出:return: None"""print(f"欢迎{username}进入收藏页面")def logout():"""功能:注销登录实现:将全局访问权变标志变为False:return: None"""global visitprint("注销成功")visit = Falsedef drop_out():"""功能:退出实现:利用exit()函数:return:None"""print("欢迎您下次访问!")exit()function = {"1": register,"2": login,"3": article,"4": comment,"5": diary,"6": collect,"7": logout,"8": drop_out,
}
msg = f"""{'博客园'.center(15, "*")}
1.注册
2.登录
3.进入文章页面
4.进入评论页面
5.进入日记页面
6.进入收藏页面
7.注销账号
8.退出
请输入序号:"""
import osflag = False
visit = False  # 访问权限标志
while True:with open("userinfo.txt", "r+", encoding="utf-8") as f1, \open("userinfo_副本.txt", "w", encoding="utf-8") as f2:choose = input(msg)if choose in function:  # 先判断choose是否在字典中if visit:  # 判断访问权限标志位是否开启,若不开启不能访问3~7if choose in ["1", "2"]:  # 若已登录不能再注册登录print("您已登录,请先注销!")else:function[choose]()  # 执行对应函数elif choose in ["1", "2", "8"]:  # 只能执行"1"、"2"、"8"功能function[choose]()else:print("请先登录")else:print("您的输入有误,请重新输入!")if flag:  # 修改文件os.remove("userinfo.txt")os.rename("userinfo_副本.txt", "userinfo.txt")flag = Falseexit()

转载于:https://www.cnblogs.com/tianlangdada/p/11573534.html

项目分享:模拟博客园登录相关推荐

  1. python博客园_python3 模拟博客园登录

    '''作业题目: 模拟博客园登录 作业需求: 1),启动程序,首页面应该显示成如下格式: 欢迎来到博客园首页 1:请登录 2:请注册 3:文章页面 4:日记页面 5:评论页面 6:收藏页面 7:注销 ...

  2. python博客园_python模拟博客园登录-基础版

    mport time import inspect from functools import wraps user_status = {'username': None,'status': Fals ...

  3. Splinter学习--初探2,模拟博客园登录

    推荐一个免费的论文查重网站:http://www.paperfree.cn 这一次想模拟登录操作,从较为简单的开始,博客园的登录一般不需要验证码,就拿它试验了. 首先,打开园子登录首页http://p ...

  4. 博客园登录 php,博客园加密登录--jsencrypt

    博客园加密登录--jsencrypt 问题由来 前几天在做项目的时候,发现一般做登录的时候只是一个非常简单的`form`表单,但是这样肯定是不安全的!所以想去看看其他比较流行的网站是怎么实现的.说到安 ...

  5. 发个牢骚,博客园登录依旧使用HTTP明文传输密码,有木有!

    发个牢骚,博客园登录依旧使用HTTP明文传输密码,有木有! 直接抓包就能获取用户名和密码,有木有! tbUserName: your_user_name tbPassword: your_passwo ...

  6. [开源] 分享导出博客园文章成本地 Markdown 文件存储的工具

    此文主要分享了如何将自己博客园的文章自动导出到 Markdown 文档进行存储,以便在本地进行归档管理,程序中也对文章的分类.tag.代码块以及文章中的图片进行了保存处理,以便上传到自己的图. 整理后 ...

  7. iOS_CNBlog项目开发 (基于博客园api开发) 上篇

    按照惯例, 先上效果图 前言 做这个项目是因为刚好在逛博客园的时候看到一篇文章 博客园第三方客户端-i博客园正式发布App Store, 这里就帮忙贴下链接吧. 整个项目做下来大概做了半个月, 今天算 ...

  8. 利用装饰器模拟博客园登陆

    要求: 项目分析:一.首先程序启动,页面显示下面内容供用户选择: 1.请登录2.请注册3.进入文章页面4.进入评论页面5.进入日记页面6.进入收藏页面7.注销账号8.退出整个程序 二.必须实现的功能: ...

  9. python在化工模拟中的应用_python完成模拟博客园登陆

    importos#登录状态 status_dic ={'username': None,'status': False } flag=True#用户名,密码 以字典形式打开 defuser_pwd() ...

最新文章

  1. 13.2System类中的常用方法
  2. 那些赞助世界杯的金主,正在变成赌徒
  3. Python中用dict统计列表中元素出现的次数
  4. 不是内部或外部命令,也不是可运行的程序 或批处理文件。(如果放了环境变量还是没有用的话)(已经解决)
  5. Android NDK调试定位错误
  6. c#中一个进程启动另一个进程并传递参数
  7. div超出不换行_文字超出显示点点点之ellipsis 设置
  8. pthread_key_create
  9. 神器 Nginx 的学习手册 ( 建议收藏 )
  10. 计算机与应用化学ppt,应用化学专用课件.ppt
  11. python2逐步转向python3之小程序实践学习
  12. cocostudio基础 教程
  13. Unicode编码详解
  14. DxO PhotoLab 3 for Mac(照片后期处理软件)
  15. 数据库类型为BLOB图片,前台显示问题。
  16. 用dep代替 go get 来获取私有库
  17. Git 使用cherry-pick摘取提交
  18. android多线程讲解与实例
  19. android个人日记本
  20. 计算机窗口置顶,将想要的窗口一直置顶的具体操作步骤介绍

热门文章

  1. ZK7.0.3中从MongoDB下载文件
  2. 智能设计-阿里巴巴Banner设计
  3. PC桌面右下方QQ托盘图标
  4. ipmitool命令总结
  5. 成双配对亮眼情侣小物大搜索
  6. 命令怎么创建oracle用户,Oracle 如何使用命令行创建用户
  7. sklearn调库实现决策树算法
  8. Unity多存档编辑器工具
  9. HTML页面的生命周期
  10. 程序员VS产品经理,成功入职字节跳动