python
文章平均质量分 81
星眺北海
既然意识到自己的渺小,就更应该变得强大
个人博客 www.xtbh.website
展开
-
【python】argparse模块——命令行参数解析
当我们开发 Python 脚本时,往往需要从命令行传递参数以控制脚本的行为。比如,一个数据处理脚本可以通过传递不同的文件名、处理方式、或者其他参数来实现不同的功能。为了简化命令行参数的处理,Python 标准库提供了argparse模块,它可以帮助我们轻松地解析用户传递的参数,并且可以生成帮助文档。本篇文章将介绍argparse模块的用法,帮助你快速掌握argparse模块,以应对命令行参数处理的需求。argparse。原创 2024-09-05 17:26:45 · 1014 阅读 · 0 评论 -
【python】Python 高阶函数map、reduce、filter、sorted
高阶函数(Higher-Order Function)是指能够接收函数作为参数,或者将函数作为返回值的函数。Python 内置了多种高阶函数,它们为我们提供了编写简洁代码的能力。lambda高阶函数为我们提供了一种优雅的方式来处理可迭代对象。通过合理运用mapreducefilter和sorted,我们可以编写出更加简洁和高效的 Python 代码。lambda表达式的配合使用,更是让代码显得简洁且富有表现力。原创 2024-08-30 11:27:20 · 1476 阅读 · 0 评论 -
【python】类的魔术方法:__repr__和__str__
_repr__,全称“representation”,是 Python 内置的特殊方法之一。它肩负着一项重要使命,那就是返回一个对象的官方字符串表示形式。这个表示形式必须尽可能地明确且无歧义,其目标是能够让开发者通过这个字符串准确地重建该对象。通常情况下,__repr__返回的字符串应当是一个有效的 Python 表达式,甚至可以使用eval()函数来重新创建该对象。例如,假设有一个简单的整数列表对象,我们可以通过以下方式实现__repr__当我们调用repr()原创 2024-08-26 11:10:51 · 821 阅读 · 0 评论 -
【python】使用字符串格式化渲染html
将 CSS 中的“{}”全部替换为“{{}}”,这种方法是可行的。在 Python 进行字符串格式化时,“{{}}”中的“{}”及其他内容会被当作普通字符串处理,不会被格式化。但当我开启 PyCharm 的代码格式化功能时,原本的“{{}}”会被转换为“{\n{ }\n}”,因此使用起来较为麻烦,甚至不太能用。然而,由于 HTML 模板中存在 CSS 样式,其“{}”语法与 Python 格式化字符串的语法产生了冲突。接着,针对“body”部分使用关键字参数进行字符串格式化,如此一来,看起来也更为直观。原创 2024-08-13 20:57:25 · 581 阅读 · 0 评论 -
【python】迭代器与生成器
迭代器和生成器是Python中两个非常有用的抽象概念,它们提供了一种控制数据流的强大机制。迭代器允许我们以统一的方式遍历不同的数据类型,而生成器则提供了一种按需产生数据项的方法。原创 2024-08-12 15:20:00 · 363 阅读 · 0 评论 -
python上下文管理器的理解使用
上下文管理器通过with和__exit__()。当进入with语句时,方法会被调用,当退出时,__exit__()方法会执行,负责清理工作。简单理解就是,上下文管理器会自动的帮我们进行资源的获取和释放,让我们专注于业务逻辑的实现。上面的例子中,open函数返回一个文件对象,它实现了上下文管理器协议。with语句确保文件在读取完毕后自动关闭,避免文件一直被占用。Python 允许开发者自定义上下文管理器,可以使用类实现上下文管理器,或通过contextlib模块使用装饰器来简化开发。原创 2024-08-11 15:52:48 · 348 阅读 · 0 评论 -
在控制台中实现旋转立方体
RIC (Render In Console) 完全基于Python标准库实现,它通过将三维坐标映射到二维坐标上,在控制台环境中实现了伪3D效果。github:RICRIC只是我一次简单的尝试,它存在很多问题,如性能问题、渲染算法问题、坐标映射问题等。但是,它确实实现了一个简单的三维图形渲染器,并能对三维模型进行旋转、缩放、平移操作。如果想要达到更好的效果,我想我还需要继续学习计算机图形学的知识,并尝试使用OpenGL,DirectX等来构建一个更好的渲染器。原创 2024-08-08 17:50:07 · 670 阅读 · 0 评论 -
leetcode787. K 站中转内最便宜的航班——优先队列优化的Dijkstra算法+剪枝
继续思考,发现dijkstra算法找到的是最优路径,但是其中转节点可能很多,而真正的路径只可能在中转节点比最优路径少的路径里,其他中转节点多于最优路径的路径完全可以剪枝,因为他们的费用不可能更低。按照这个思路,只需要维护一个每个节点的最小中转数,任何多于最小中转数的路径都可以剪枝,因为对于每一个被剪枝的路径来说,在其之前都已经有至少一条路径价格比它低的同时中转数还要小于它。对于k的限制,我想到可以在优先队列中维护一个当前层级的变量,当到达的层级大于k时,就不再扩展了。k:最多经过的中转站数。原创 2024-08-08 17:37:33 · 497 阅读 · 0 评论 -
python全文检索库:whoosh
Schema 定义了索引的结构,包括字段名称和类型。我的理解就是相当于数据库的建表操作其中stored用于指明是否存储该项的具体值如果为True可以再搜索结果中直接访问到这个字段如果为False的话就只能进行搜索,但是在结果中是无法直接访问具体内容的。原因是倒排索引本身只会建立词元到记录之间的映射关系,并不会保存记录本身。要显示保存记录才能在搜索结果中访问。原创 2024-08-06 14:47:30 · 1647 阅读 · 0 评论 -
SMTPlib 模块:使用python 发送电子邮件
python 的smtplib模块是一个用于发送电子邮件的库,它提供了与 SMTP(简单邮件传输协议)服务器交互的功能。通过这个模块,开发者可以轻松地将电子邮件发送到指定的收件人。原创 2024-07-24 15:32:15 · 484 阅读 · 0 评论 -
python bisect模块
在处理有序数据集合时,二分查找是一种非常高效的搜索算法。Python 的 bisect 模块提供了二分查找算法的实现,帮助我们快速定位元素在有序列表中的位置,以及在保持列表有序的前提下插入新元素。原创 2024-07-24 09:34:39 · 302 阅读 · 0 评论