importos#登录状态

status_dic ={'username': None,'status': False

}

flag=True#用户名,密码 以字典形式打开

defuser_pwd():

with open("user", encoding="utf-8") as f:

dic={}for i inf:

li= i.strip().split("|")

dic[li[0].strip()]= li[1]returndic#登录函数

deflogin():

u_p=user_pwd()

count=0while count < 3:

username= input("请输入姓名:").strip()

password= input("请输入密码:").strip()if username in u_p and password ==u_p[username]:

status_dic["username"] =username

status_dic['status'] = True #状态改为True

print("登陆成功")returnTrueelse:print("账号或密码错误,请重新登录")

count+= 1

#注册函数

defregister():while 1:

dict1=user_pwd()

username= input("请输入新账号:").strip()

password= input("请输新入密码:").strip()if username in dict1: #判断用户是否在文件中存在

print("用户名已存在,请重新输入")continue

elif not username.isalnum(): #判断用户是否是字母或数字组成

print("账号含有非法字符,请重新输入")continue

elif 5 < len(password) < 15: #限制密码在6-14位之间

with open("user", encoding="utf-8", mode="a") as f1:

f1.write(username+"|"+password+"\n")print("恭喜!注册成功")returnTrueelse:print("密码不合规范,请重新输入")#装饰器

def auth(f): #限制3-7选项,没有登陆不能访问

def inner(*args, **kwargs):if status_dic["status"]:

ret= f(*args, **kwargs)returnretelse:print("-------登录页面-------")

login()

ret= f(*args, **kwargs)returnretreturninner

@authdefarticle():print(f'欢迎{status_dic["username"]}访问文章页面')print("""1.写入文件

2.导入md文件""")while 1:

choice= input("请输入要选择的操作:").strip()if choice == "1":

file_name= input("输入文件名:").strip()

content= input("请输入内容").strip()

with open(r'article/'+file_name, encoding="utf-8", mode="a") as f1:

f1.write(content)print("写入文章成功")break

if choice == "2":

with open("函数的进阶.md", encoding="utf-8") as f2,\

open(r"article/"+"函数的进阶.text", encoding="utf-8", mode="w") as f3:

f3.seek(0)for i inf2:

f3.write(i)print("导入文件成功")break

else:print("您输入的不合规范")

@authdefdiary():print(f'欢迎{status_dic["username"]}访问日记页面')

@authdefcomment():print(f'欢迎{status_dic["username"]}访问评论页面')

file= os.listdir(os.path.dirname(__file__)+'/article') #把article文件夹里的文件,变成列表形式

for index, obj in enumerate(file, 1): #循环列表

print(index, obj)while 1:

choice= input("请输入要评论的文章的序号:").strip()ifchoice.isdigit():

choice=int(choice)if 0 < choice <= len(file): #限制用户输入序号的范围

path = os.path.join(os.path.dirname(__file__)+'/article', file[choice-1]) #拼接路径,找到该文件

with open(path, encoding="utf-8", mode="r+") as f1:

ret=f1.read()print(ret)

content= input("请输入要评论的内容")

sensitive= ["苍老师", "东京热", "武藤兰", "波多野结衣"] #此列表为敏感字符

for i in range(len(sensitive)): #敏感字符替换等长度*

if sensitive[i] incontent:

content= content.replace(sensitive[i], '*' *len(sensitive[i]))if "-"*20 not in ret: #判断如果不在这里加上"评论区"三个字

f1.write("评论区:" + "\n" + "-"*20 + "\n" + f'{status_dic["username"]}:\n{content}' + "\n")print("评论成功")returnTrueelse: #否则直接写入评论

f1.write(f'{status_dic["username"]}:\n{content}' + "\n")print("评论成功")returnTrueelse:print("请选择正确的文章序号")else:print("输入内容含有非法字符")

@authdefenshrine():print(f'欢迎{status_dic["username"]}访问收藏页面')#注销

deflogin_out():

status_dic['username'] =None

status_dic['status'] =Falseprint('注销成功')#退出程序

defexit_program():globalflag

flag=Falsereturnflagdefrun():

choice_dict={1: login,2: register,3: article,4: diary,5: comment,6: enshrine,7: login_out,8: exit_program,

}whileflag:print('''欢迎来到博客园首页

1:请登录

2:请注册

3:文章页面

4:日记页面

5:评论页面

6:收藏页面

7:注销

8:退出程序''')

choice= input('请输入您选择的序号:').strip()ifchoice.isdigit():

choice=int(choice)if 0 < choice <=len(choice_dict):

choice_dict[choice]()else:print("您输入的超出范围")else:print("输入不合规范,重新输入")if __name__ == '__main__':

run()

python在化工模拟中的应用_python完成模拟博客园登陆相关推荐

  1. java输出当前时间_JAVA中获取当前系统时间 - Matrix54 - 博客园

    JAVA中获取当前系统时间 - Matrix54 - 博客园 一. 获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleD ...

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

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

  3. python的整数取反_整数取反 - yunduoyun - 博客园

    给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1].请根据这个假设,如 ...

  4. 一个可编辑与新增博客园文章的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻 ...

  5. python贴吧发帖脚本-一个发布文章到博客园的 Python 脚本

    我的个人独立博客是基于 Hexo 搭建的,因为小站,Google 搜索引擎收录文章比较慢,还搜不到 为了解决这个问题,希望把文章也顺便发布到博客平台博客园上.但不想每次手动复制粘贴,打算利用脚本实现, ...

  6. python爬虫如何模仿登录_python爬虫:两种方法模拟登录博客园

    第一方法用第三方库(requests):参考http://www.mamicode.com/info-detail-1839685.html 源代码分析 博客园的登录页面非常简单,查看网页源代码,可以 ...

  7. python爬虫:两种方法模拟登录博客园

    第一方法用第三方库(requests):参考http://www.mamicode.com/info-detail-1839685.html 源代码分析 博客园的登录页面非常简单,查看网页源代码,可以 ...

  8. python自动输入账号密码_Python如何基于selenium实现自动登录博客园

    这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用 ...

  9. python博客项目评论_Python 爬虫入门——小项目实战(自动私信博客园某篇博客下的评论人,随机发送一条笑话,完整代码在博文最后)...

    之前写的都是针对爬虫过程中遇到问题的解决方案,没怎么涉及到实际案例.这次,就以博客园为主题,写一个自动私信博客下的评论人员(在本篇留下的评论的同学也会被自动私信,如果不想被私信,同时又有问题,请私信我 ...

最新文章

  1. excel图表交互联动_如何使用高大上的多级联动交互式图表来分析人员结构?
  2. 深度剖析「圈组」消息系统设计 | 「圈组」技术系列文章
  3. 【网址收藏】Fedora 34安装Wine、微信
  4. [JS]手写动画最小时间间隔设置
  5. Eclipse 使用 CodeMix 插件 开发 Vue.js
  6. Mycat_MySql更新数据库失败 --read-only
  7. python程序是怎么构成的_python程序的构成
  8. linux设备驱动 注册 命令6,Linux设备驱动程序学习----6.模块的参数
  9. Atitit 图像处理的摩西五经attilax总结
  10. phpcms二次开发摘要
  11. android 手机远程助手,安卓远程桌面软件
  12. 研究生毕业做软件测试,毕业研究生,转学软件测试月薪11K,会做选择的人生到底有多赚?...
  13. java中poi搜索工程_POI搜索简介
  14. 笔记本电脑热点显示正在断开连接,一直无法开启热点,inetsh winsock reset 命令重置可以解决
  15. SAP ABAP 标题左边 GOS文件菜单 自定义 CL_GUI_GOS_CONTAINER MENU Gos based menu GOS BUTTON
  16. 2021-03-26
  17. maven项目的pom.xml文件添加依赖
  18. 如何用Python和循环神经网络预测严重交通拥堵?
  19. 亚马逊后台网页提示HTTP Status 400 – Bad Request无法登陆的解决办法
  20. 测试手机速度的软件叫什么,怎样用手机测wifi网速 手机测网速用什么软件

热门文章

  1. iPhone 12使用“通过Apple登录”方法教程「iphone技巧」
  2. 用python制作二维码_使用python制作二维码
  3. hexo添加点击爆炸效果 duang duang duang
  4. 哪个dns服务器延迟最低,可以立即测出延迟最小的DNS
  5. python解析xml读取指定属性_python批量修改xml某些内容和属性
  6. java读取文件是乱码_java读取txt文件乱码解决方案
  7. nginx 负载均衡安装及升级步骤
  8. Variational Inference入门:variational bayesian EM
  9. win10 删除无用的bios引导
  10. 安卓平板隐藏虚拟按键_实现安卓设备虚拟按键隐藏和显示的方法和系统的制作方法...