python | 写一个记仇本

20个实用小技巧,让你的 Python 跑得更快 Hello 我是花姐。累电脑。累内存。还累维护你代码的倒霉蛋(可能就是未来的你)。所以花姐直接给大家整了 20 个Python提速小技巧,适用于初中高级Python爱好者! 阅读详情

最近背着老婆买了一个switch卡带,这货居然给丈母娘讲,害得我被丈母娘说还小了,不买奶粉买游戏,太气人了,我连夜用python写了个《记仇本》,画个圈圈把她记下来。

本片文章,主要关注于python代码,而html和css将暂时被忽略。

记仇本展示

如题所述,项目已经写好了,是基于local_storage存储在本地的项目,地址如下:

该项目运行时是基于brython, 你可能想问,为什么不使用原生python来编写网页呢,这个有个误区是,网页是由html代码编写的,而原生python想要操作DOM非常难,所以brython正是为这个来操作的。

初始打开页面,因为没有数据展示,所以只有一个增加按钮。

当我们点击【画个圈圈记下来】按钮后,会刷新为新增页面,例如:

此时,我们只需要输入信息,比如 记老婆的仇,缘由为 买switch游戏透露给丈母娘,还得被骂。

此时点击记仇,就可以存储到页面上了。

此时若点击已原谅,则可以删除该记录。

brython 之 local_storage

你可能细心发现了,哎,关掉了浏览器,下次打开,怎么还会有记录在上面呢,这是因为用了local_storage,那么,什么是local_storage呢?

哎,我们使用的是brython中的local_storage但是,它可不是python定义的哦,而是HTML 5提供的存储数据的API之一,可以在浏览器中保持键值对数据块。

现在来展示使用一下brython存储和删除的操作。

导入库:

from browser.local_storage import storage

存储数据,例如键值信息juejinName存储为pdudo

storage[juejinName] = "pdudo"

查询的话,直接使用storage[变量]就好,若为空,则返回None

v = storage[juejinName]

循环所有的key,需要引入window库,再使用for...in来完成

from browser import window
for key in window.localStorage:
    print(key)

也可以直接使用for...in来遍历storage

而删除数据呢?只需要像删除字典一下

del storage[juejinName]

storage是不是操作起来和字典非常类似呢?减少了开发者的学习成本。

上述案例,已经放到下面的链接中了:

制作项目

有了上述前置条件后,我们再看该项目,便可以总结为 针对localStorage的增删查,首先当页面加载出来的时候,我们需要先遍历一下localstorage数据,从而映射为一个table,例如:

  for key in window.localStorage:
    tr = html.TR()
    datas = json.loads(storage[key])

    delBtn = html.BUTTON("已原谅")
    delBtn.dataset["id"] = datas["id"]
    delBtn.className = "confirm-btn"
    delBtn.bind("click",delGrudges)

    td = html.TD(delBtn+" "+time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(datas["id"]))))
    tr <= td

    for tdVal in datas["whos"],datas["Text"]:
      td = html.TD(tdVal)
      tr <= td
        
    tb <= tr 

    userWindows <= tb

上述代码是遍历localStorage,而后在定义删除按钮,等将其他值组合完毕后,全部加载进table中,而后再页面上显示。

而添加数据呢?

def saveGrudges(ev):
  getWhoVal = document["whos"].value
  getTextVal = document["textArea"].value

  if getWhoVal == "" or getTextVal == "":
    return
  
  document["saveBtn"].unbind("click")


  ids = int(time.time())
  datas = {
    "id": ids,
    "whos": getWhoVal,
    "Text": getTextVal
  }

  storage[str(ids)] = json.dumps(datas)

上述代码,显示获取input和textarea框中的值,再判断是否用户没有输入,我们将数据组装为一个字典,而后转换为字符串,再存入localstage中。

还有其他操作,这个可以直接看代码说明,brython很简单的。

总结

这篇文章,是善用localStorage来作为键值对存储,以此来保证打开和关闭浏览器,不会对数据产生影响,整个项目就是围绕这个localStorage增删改查来操作的。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

啥?朋友圈屏蔽我。居然连QQ空间都屏蔽我,不行,我得用Python找出来哪些人。 前言 我相信很多人发一些毕竟暧昧啊,敏感的朋友圈时,都会选中一些人屏蔽掉吧,虽然每个人都有不能说出口的理由,但是我屏蔽你可以,因为你不知道,但是你不能屏蔽我呀,那样太伤心了啊!哈哈哈,是不是太双标了!今天主要教大家是怎么获取那些QQ空间都屏蔽我们的人,咱就是小气,咱就是记仇,哈哈哈! 准备工作 python环境:python3.7.4第三方库环境:requestslxmlthreadpoolselenium 准备工作准备好,这样才能写出有效代码!需要软件或者中库,这种模块的点这里即可... 阅读详情

相关推荐

Python TypeError:builtin_function_or_method不可下标访问详解

在Python中,'callable'(可调用对象)与'subscriptable'(可下标对象)是两类根本不同的数据角色。callable如print、len、list.append等内置函数或方法,本质是执行动作的逻辑单元,必须通过圆括号()触发;而subscriptable如list、dict、str等容器类型,才支持方括号[]索引取值,因其内部实现了__getitem__协议。混淆二者会导致'TypeError: builtin_function_or_method object is not su

hck341204的专栏 470

给AI智能体装上长期记忆:手写一个会“记仇”的Agent

content=f"用户说: {user_input} | 我回答: {assistant_response[:200]}",self.memory_trigger_words = memory_trigger_words or ["记得", "之前", "上次"]prompt = f"请用两三句话总结以下对话的关键信息(用户偏好、事实、约定等):\n{text}""""对当前短期记忆(除系统提示外)进行总结并存储""""""根据用户输入召回长期记忆,格式化为上下文"""

yzx991013的博客 508

python编程-第九节-类-003

作为一个Python程序员,修改对象属性就像给女朋友挑礼物——方法很重要! 下面介绍三种修改属性值的姿势,从简单粗暴到优雅得体,总有一款适合你。

欢迎来到测试猿的吐槽大会!这里没有鸡汤,只有段子。功能测试:在需求文档里找漏洞,在界面上玩大家来找茬。自动化测试:让代码替我加班,而我负责喝咖啡摸鱼。性能测试:给服务器施压,看它到底能扛几拳。全流程质量守护:从需求评审到上线,一路带刀护送。 762

使用python的matplotlib将字典绘图

使用python的matplotlib,把字典的键和值分别作为两个维度,绘图;将列表list整体转化为某一数据类型(如float,str)

m0_46515351的博客 2万+

AI系统上下文管理架构中的动态调整:提示工程的实时优化技巧

我们每天用的ChatGPT、 Siri、 淘宝客服AI,本质都是“对话系统”——它们需要记住之前的对话内容,才能理解你的真实需求。比如你说:“我明天要去上海”,接着问“有没有好玩的地方?”,AI得知道“好玩的地方”是指上海的,而不是北京的。记不住太多:比如GPT-4的上下文窗口是8k/32k token(大概5000-20000字),超过这个长度,前面的内容会被“挤出去”;不会灵活调整:就算记住了,AI也可能不会根据你的反馈改指令——比如你说“推荐的景点太贵”,它还在重复之前的高端路线。

操作系统内核探秘的博客 936

Python 应用跑得更快20个实用小技巧

20个实用小技巧,让你的 Python 跑得更快 。今天咱来聊个扎心的真相: “你写的 Python,不是慢,是累。” 累电脑。累内存。还累维护你代码的倒霉蛋(可能就是未来的你)

wjianwei666的专栏 253

第一次听写单词,惨败

    上星期陪佳湖和fan去了八达岭长城,逃了一节英语课,没想到这个英语老师居然记仇,每次英语课有人没去,就一定点我们这几个没去上课的,真是ft。    英语课是第3/4节,所以我就利用前两节课预习了一下unit2,没想到老师居然不往下讲,而是要讲课后习题。晕……更晕的是,开始上课的时候,居然要求听写unit1的单词。印象中,上一次听写单词应该要追溯到高中了吧。结果,历史上最失败的一次单词听

瓶子的窝 1129

从零开始:手把手教你做转录组与代谢组的联合分析(含R代码)

本文详细介绍了转录组与代谢组联合分析的全流程,包括数据准备、预处理、差异分析及可视化方法,并提供了实用的R代码示例。通过多组学整合分析,研究者可以更全面地理解生物过程,适用于疾病机制和药物开发等医学研究领域。

weixin_29306317的博客 439

python读取excel中文件并追加结果_Python实现爬虫抓取与读写、追加到excel文件操作示例...

如何通过Python实现Excel文件读写如果以后你会不经意地想起小编,请别忘记小编曾那样深深地爱过你。参考代码如下: # -*- coding: utf-8 -*- import xdrlib ,sys import xlrd def open_excel(file= 'file.xls'): try: data = xlrd.open_workbook(file) return data ex...

weixin_36269334的博客 330

实现自动打包py及替换pyinstaller --add-data参数的方法

实现自动打包py及替换pyinstaller --add-data参数的方法

isS_MK_GmbH的博客 3468

Android 16强制横竖屏设置

但开发者端的响应却相对滞后,特别是中小型开发团队受限于大屏设备市场渗透率(截至2023年Q2,Android平板全球激活量约1.2亿台,不足手机设备5%)及开发成本考量,适配优先级普遍偏低。这种适配滞后已形成恶性循环——开发者因设备基数不足降低适配意愿,而用户体验缺陷又反向抑制大屏设备的市场接受度。要破解这一困局,既需要Google持续优化Jetpack Compose等现代化UI工具链,更需要建立开发者激励体系,通过应用商店流量倾斜、开发补贴等经济手段提升适配投入产出比。再不肯好好适配大屏设备?

xiangzhihong8的专栏 979

因为程序员的一个手滑?这家AI巨头被迫“开源”了核心机密

AI巨头Anthropic因开发失误被迫"开源"核心代码!一个未删除的source map文件导致50万行机密代码泄露,暴露了防爬虫"投毒"机制、脏话记仇系统等趣味设计。更戏剧性的是,韩国程序员用AI工具连夜将代码从TypeScript转译为Python,规避版权法限制,相关项目2小时获5万星,创GitHub纪录。这场意外揭示了AI时代"魔法打败魔法"的软件生态,即使顶尖公司代码也充满妥协补丁。

万猫学社 276

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代

摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化

致力于lidar应用开发 83

Day09: Python函数魔法学院:解锁闭包/装饰器/生成器的奇妙世界

保留原始函数信息,避免调试时迷路。

yezi1238的博客 721

​ISP算法及架构分析介绍

ISP算法及架构分析介绍ISP即Image Signal Processor,是一种图像处理架构,不是我们用的下载器。ISP其实算是图像处理的一个特例,一般应用于前端设备(相对于SENSOR),从结果上看就是将RAW数据转换成压缩后的RGB(一般)数据,供后续CPU使用(识别、压缩等)。市面上很少有直接介绍ISP的书籍或者资料,今天我们主要是聊一聊ISP算法的架构,这样大...

OpenFPGA的博客 5406

华为OD机试真题 新系统 2026-04-26 Python&JS 实现【项目模块依赖构建顺序规划】

某公司正在开发一个大型软件系统,系统包含 N 个模块,每个模块之间存在构建依赖关系。例如,模块 A 可能依赖于模块 B,这意味着必须先构建模块 B,才能构建模块 A。 请根据依赖关系,输出所有可能的模块构建顺序(按照构建顺序排列模块名称),要求:

MISAYAONE的博客 405

基于python的文件加密传输系统 毕业论文_20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告...

20183411 李丞灏 2020-2021 《python程序设计》 实验三 加密传输文件 实验报告课程:《Python程序设计》班级: 1834姓名: 李丞灏学号:20183411实验教师:王志强老师实验日期:2020年5月23日必修/选修: 公选课1.实验内容(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;(2)要求包含文件的基本操作,例如打开和读写操作。...

weixin_39876739的博客 580

YOLO由浅入深,最简单地说明白YOLO基本实现原理

YOLO(You Only Look Once)是一种高效的实时目标检测技术,广泛应用于自动驾驶、监控和无人机等领域。其核心优势在于速度快,能够在视频流中实时识别目标并标出其位置、大小、类别及置信度。YOLO基于卷积神经网络(CNN),通过卷积层提取图像特征,池化层和扁平化层优化特征处理,全连接层进行分类。与传统方法不同,YOLO将图像分割成多个网格,每个网格预测多个边界框及其置信度,仅对高置信度的框进行详细计算,从而快速确定目标的位置和类别。这种机制使得YOLO在保持高准确率的同时,实现了高效的实时处理能

qq_30279827的博客 567

别再死记硬背PID公式了!用Python+MATLAB/Simulink手把手带你调参(附代码)

本文通过Python和MATLAB/Simulink双平台实战,深入解析PID控制器的核心原理与调参技巧。从比例、积分、微分参数的工程直觉到Ziegler-Nichols方法的现代改进,再到自适应PID与非线性处理的高级技巧,帮助工程师摆脱死记硬背公式的困境,掌握线性系统校正方法的精髓。

weixin_30755393的博客 565

让 ABAP 开发更聪明的搭档:SAP Joule for Developers 与 ABAP AI Capabilities 全面实战

摘要:SAP已将生成式AI集成到ABAP开发工具中,推出Joule for Developers功能。该功能直接嵌入Eclipse开发环境,提供代码解释、生成、测试构造和遗留代码迁移等辅助功能。Joule支持ABAP Cloud项目开发,能围绕当前开发对象提供上下文相关的建议,帮助开发者高效完成应用开发与迁移任务。启用该功能需升级ADT并获取相应许可,典型应用场景包括RAP应用构建和S/4HANA迁移中的代码重构。官方资源提供了多个实践案例,帮助开发者快速上手这一AI辅助开发功能。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 496

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 还在无效加班?Python自动化办公指南
下一篇: 分享一个提高运维效率的 Python 脚本
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值