- 百行异步爬虫 in Python
展示了一个使用 Python asyncio、aiohttp、aiofiles 和 lxml 实现的百行左右的简单异步网络爬虫,包含请求器、解析器、链接生成器和调度器的基本概念。
2 min read - Tornado ETag 缓存机制
通过分析 Tornado web 框架中 `RequestHandler.finish` 方法的源码,解释了 Tornado 如何在特定条件下(GET/HEAD请求、状态码200、无预设Etag)自动计算响应内容的 SHA1 并设置 Etag 响应头,以支持 HTTP 缓存机制。
2 min read - Pipenv + Autoenv 环境自动管理
介绍了如何结合使用 Pipenv 进行 Python 包管理和 Autoenv 实现虚拟环境自动切换,以简化开发流程,并提供了 MacOS 下的安装和配置方法。
1 min read - KMP 字符串查找算法 in Python
介绍了 KMP (Knuth-Morris-Pratt) 字符串查找算法的原理和优点,通过预处理模式串生成部分匹配表(Partial Table)来优化匹配过程,避免不必要的回溯,并提供了 Python 实现代码。
2 min read - 编辑距离 in Python
介绍了编辑距离(特别是莱文斯坦距离)的概念、用途(如拼写检查、DNA相似度比较)和基本原理,并提供了 Python 实现莱文斯坦距离算法的代码示例。
1 min read - 树结构 in Pyuth
介绍了树的基本定义和特点,并使用 Python 实现了一个简单的树结构(TreeNode, Tree),演示了多种树的操作:前序遍历(循环/递归)、后序遍历(循环/递归)、层次遍历、求深度、求节点数、求叶子数、求最低公共祖先节点以及求任意两节点距离。
3 min read - 常见的排序算法 in Python
使用 Python 实现了八种常见的排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序(递归法)、快速排序(多种实现)、堆排序和计数排序,并解释了各自的原理和步骤。
5 min read - 线性数据结构 in Python
使用 Python 实现了四种基本的线性数据结构:数组(讨论了 Python List 的实现)、堆栈(LIFO)、队列(FIFO)和链表(双向链表),并提供了相应的操作代码。
4 min read