
Python基础
文章平均质量分 81
Python语言使用收集
彬彬侠
人工智能算法工程师、后端工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Python】threading 模块:用于实现多线程编程
Python 的 threading 模块是标准库的一部分,用于实现多线程编程,适合处理 I/O 密集型任务(如网络请求、文件读写),支持 Thread、Lock、Semaphore、Event、Queue、Timer 等。由于 Python 的全局解释器锁(GIL)限制,threading 不适合 CPU 密集型任务(这些任务应使用 multiprocessing)。threading 提供了创建和管理线程的 API,支持线程同步、通信和定时执行,接口简单且跨平台。本文将详细介绍 threading 模块原创 2025-06-15 23:07:01 · 1076 阅读 · 0 评论 -
【Python】multiprocessing 模块:实现多进程并行计算
Python 的 multiprocessing 模块是一个标准库模块,用于实现多进程并行计算。它通过创建独立的进程,绕过 Python 的全局解释器锁(GIL),在多核 CPU 上实现真正的并行,特别适合 CPU 密集型任务(如数值计算、图像处理),支持 Process、Pool、Queue、Pipe、Lock 等。相比线程(threading 模块),multiprocessing 更适合需要高性能计算的场景。本文将详细介绍 multiprocessing 模块的定义、功能、用法、示例、应用场景、最佳实原创 2025-06-15 23:00:06 · 906 阅读 · 0 评论 -
【Python】Gym 库:于开发和比较强化学习(Reinforcement Learning, RL)算法
Gym 是 Python 中一个广泛使用的开源库,用于开发和比较强化学习(Reinforcement Learning, RL)算法。它最初由 OpenAI 开发,提供标准化的环境接口,允许开发者在各种任务(如游戏、机器人控制、模拟物理系统)中测试 RL 算法。Gym 的设计简单且灵活,适合学术研究和工业应用。2022 年,Gym 被整合到 Gymnasium(由 Farama Foundation 维护)中,成为主流的强化学习环境库。本文以 Gymnasium(gymnasium)为基础,兼容旧版 Gym原创 2025-06-15 11:32:16 · 1383 阅读 · 0 评论 -
【Python】DocArray 库:表示、传输、存储和搜索多模态数据(如文本、图像、音频、视频、3D 网格等)
DocArray 是一个 Python 库,专注于表示、传输、存储和搜索多模态数据(如文本、图像、音频、视频、3D 网格等),特别适用于机器学习(ML)和神经搜索(Neural Search)应用。它提供了一种灵活、Pythonic 的数据结构,基于 Pydantic,支持与 NumPy、PyTorch、TensorFlow 和 FastAPI 等生态系统的无缝集成。DocArray 自2020年起由 Jina AI 开发,2022 年开源并加入 LF AI & Data Foundation,采用 Apa原创 2025-06-02 17:26:49 · 595 阅读 · 0 评论 -
【Python】beautifulsoup4 库:解析 HTML 和 XML 文档
Beautiful Soup(beautifulsoup4)是 Python 中一个流行的第三方库,用于解析 HTML 和 XML 文档,提取数据或修改文档结构。它以简单、直观的 API 提供了强大的网页抓取功能,广泛应用于网络爬虫、数据提取和自动化测试等领域。Beautiful Soup 特别适合处理结构不规则或错误的 HTML 文档,配合 urllib 或 requests 等库使用效果更佳。原创 2025-06-02 12:41:17 · 1263 阅读 · 0 评论 -
【asyncio】asyncio.gather() 函数:并发运行多个异步任务(协程)并收集它们的返回值
在 Python 中,asyncio.gather() 是 asyncio 模块提供的一个关键函数,用于并发运行多个异步任务(协程)并收集它们的返回值。它是异步编程中常用的工具,适合需要同时执行多个独立 I/O 操作(如网络请求、文件读写)的场景。asyncio.gather() 提高了代码效率,同时保持异步事件循环的非阻塞特性。通过 await asyncio.gather(*coroutines) 运行任务原创 2025-06-01 17:14:36 · 1826 阅读 · 0 评论 -
【asyncio】asyncio.Semaphore :限制同时运行的异步任务数量
在 Python 中,asyncio.Semaphore 是 asyncio 模块提供的一个异步并发控制工具,用于限制同时运行的异步任务数量。它是信号量(Semaphore)的异步版本,适合在异步编程中管理资源访问或限制并发,例如控制对共享资源的访问(如网络请求、数据库连接)或限制协程的并行执行数量。通过 async with 或 acquire/release 管理资源。原创 2025-06-01 16:37:14 · 1215 阅读 · 0 评论 -
【Python】urllib 模块:处理网络请求和 URL 操作
Python 的 urllib 模块是处理 URL 和网络请求的标准库工具,包含四个子模块:urllib.request:发送 HTTP/HTTPS 请求,下载文件。urllib.error:处理请求异常。urllib.parse:解析和编码 URL。urllib.robotparser:解析 robots.txt。其核心特点包括:简单易用:适合轻量级网络任务。应用场景:网页爬取、API 调用、文件下载、爬虫规则检查。最佳实践:异常处理、上下文管理器、设置请求头、参数化 URL。虽然 urllib 功能强大原创 2025-05-31 19:57:55 · 779 阅读 · 0 评论 -
【Python】tavily 库: 与 Tavily 搜索 API 交互的工具
tavily 库是 Python 中与 Tavily 搜索 API 交互的强大工具,专为 AI 代理和 LLM 优化,提供搜索、问答、内容提取、爬取和站点映射等功能。其同步和异步客户端支持灵活的集成,适用于聊天机器人、Web 爬虫、RAG 应用和自动化研究。研究表明,tavily 的响应速度和准确性优于传统爬虫方案。本文是对 tavily 库的详细介绍,内容以中文输出,结构清晰有序,涵盖定义、安装、核心功能、使用方法、性能、适用场景、注意事项及最佳实践原创 2025-05-30 18:19:16 · 1404 阅读 · 0 评论 -
【Python】海象运算符(Walrus Operator) := 同时进行赋值和返回值
在 Python 中,海象运算符(Walrus Operator) 是 Python 3.8(PEP 572)引入的一种新语法,写作 :=。它的正式名称是“赋值表达式(Assignment Expression)”,因其形似海象的“獠牙”(冒号和等号)而得名“海象运算符”。海象运算符允许在表达式中同时进行赋值和返回值,从而简化代码,减少重复计算,尤其在循环、条件语句和列表推导式等场景中非常有用。原创 2025-05-30 14:37:20 · 1036 阅读 · 0 评论 -
【Anaconda】Anaconda环境下升级/安装GCC/G++
本文是在Anaconda环境下升级或安装GCC/G++的清晰有序指南,适用于Linux系统。步骤简洁实用,涵盖主要方法、验证步骤和注意事项。激活环境:conda activate your_env_name添加通道:conda config --add channels conda-forge安装编译器:conda install -c conda-forge gcc gxx验证版本:gcc --version 和 g++ --version原创 2025-05-25 18:06:08 · 1950 阅读 · 0 评论 -
【Python】uv 库:下一代开源的 Python 包管理工具
Python 中的 uv 库是一个由 Astral 公司开发的下一代 Python 包管理工具,基于 Rust 构建,旨在提供比传统工具(如 pip 和 Poetry)更快、更统一的管理体验。它不仅支持包安装和依赖解析,还扩展到 Python 版本管理和项目工作流管理。本文将详细介绍 uv 的定义、核心功能、安装方法、使用示例、性能优势、适用场景、注意事项及最佳实践,内容以中文输出,结构清晰有序,适合学习者深入理解。原创 2025-05-24 20:53:18 · 2705 阅读 · 0 评论 -
【Python】sys.intern() 函数:用于字符串驻留(string interning)的工具
sys.intern() 是 Python sys 模块中的一个函数,用于将字符串加入 Python 的内部字符串表(interned strings table),并返回该字符串的规范表示。如果表中已存在相同内容的字符串,则返回相同的对象,从而实现字符串驻留。字符串驻留是一种内存优化技术,确保相同内容的字符串共享同一内存地址,从而减少内存占用并加速字符串比较。原创 2025-05-20 23:17:14 · 777 阅读 · 0 评论 -
【Python】Python 的格式化字符串(f-string)
Python 的格式化字符串(f-string,格式化字符串字面量)是 Python 3.6 引入的一种强大且简洁的字符串格式化工具,通过在字符串前添加 f 或 F 前缀,并使用花括号 {} 嵌入变量或表达式,实现动态字符串生成。旨在提供比传统 % 格式化、str.format() 和 string.Template 更简洁、可读且高效的方式。f-string 允许在字符串字面量中直接嵌入 Python 表达式,运行时动态求值。原创 2025-05-19 10:20:13 · 2409 阅读 · 0 评论 -
【Python】aiohttp库:基于 asyncio 的异步 HTTP 客户端和服务器框架
aiohttp(Asynchronous Input/Output HTTP)是 Python 的一个开源异步 HTTP 框架,构建于 asyncio 库之上,采用 async/await 语法,支持 HTTP 客户端和服务器功能。核心特点:异步处理:利用 asyncio 实现非阻塞 I/O,适合高并发场景。双向功能:支持 HTTP 客户端(发送请求)和服务器(处理请求)。丰富功能:包括 WebSockets、路由、中间件、JSON 处理和流式传输。高性能:研究表明,aiohttp 在并发请求下优于同步库(原创 2025-05-19 16:09:24 · 2243 阅读 · 0 评论 -
【Python】Python 的基本数据类型及其方法
Python基本数据类型分为数值类型(int, float, complex)、序列类型(str, list, tuple, range)、集合类型(set, frozenset)、映射类型(dict)、布尔类型(bool)和空值类型(NoneType)。各类型提供特定方法:数值类型支持数学运算和转换,字符串提供丰富的文本处理方法,列表/集合支持增删改查,字典管理键值对。这些数据类型构成了Python编程的基础,广泛应用于数据处理、算法实现和系统开发中。原创 2025-05-19 00:39:14 · 1113 阅读 · 0 评论 -
【Python】abc 模块:定义抽象基类(Abstract Base Classes)的工具
abc 模块是 Python 中定义抽象基类的核心工具,通过 ABC、ABCMeta 和 @abstractmethod 提供接口定义和强制实现的功能。它与元类(ABCMeta)紧密结合,支持虚拟子类、自定义子类检查等高级特性。abc 模块在插件系统、框架开发和类型检查中有广泛应用,但需权衡复杂性与灵活性。原创 2025-05-18 10:52:48 · 1532 阅读 · 0 评论 -
【Python】元类(metaclass):定义类的类,控制类的创建和行为
在 Python 中,元类(metaclass) 是一种高级特性,用于控制类的创建和行为。简单来说,元类是“类的类”,即定义类如何被创建的模板。理解元类需要先了解 Python 的对象模型:类本身是对象,而元类是创建这些类对象的“工厂”。Python 中元类通过 metaclass 关键字指定,默认元类是 type。元类允许你在类定义时干预类的创建过程,例如修改类属性、方法、继承关系,甚至动态生成类。元类通常继承自 type,并重写以下方法:__new__、__init__、__call__。抽象基类元类:原创 2025-05-17 11:32:16 · 929 阅读 · 0 评论 -
【Python】Poetry 库:依赖管理和打包工具
Poetry 是一个开源工具,旨在解决 Python 依赖管理和打包中的常见问题,如版本冲突、手动管理虚拟环境、复杂的发布流程等。它通过 pyproject.toml 文件统一管理项目元数据和依赖,支持 PEP 517/518 标准,取代了传统的 Pipenv、virtualenv 或 pip 工作流。原创 2025-05-16 21:41:28 · 1901 阅读 · 0 评论 -
【Python】sqlite3 模块:创建和操作 SQLite 嵌入式数据库
Python 的 sqlite3 模块是标准库的一部分,提供了一个轻量级的、基于磁盘的关系型数据库接口,用于与 SQLite 数据库交互。SQLite 是一个嵌入式数据库,无需独立的服务器进程,适合小型应用、原型开发、桌面应用或移动设备。sqlite3 模块允许 Python 开发者执行 SQL 查询、管理数据库连接以及处理数据,具有简单易用、性能高效的特点。原创 2025-05-14 12:04:57 · 1239 阅读 · 0 评论 -
【Python】uuid 模块:生成和处理通用唯一标识符(UUID,Universally Unique Identifier)
Python 的 uuid 模块是标准库的一部分,用于生成和处理通用唯一标识符(UUID,Universally Unique Identifier)。UUID 是一个 128 位的标识符,通常以 32 个十六进制字符的字符串形式表示(例如 123e4567-e89b-12d3-a456-426614174000),广泛用于需要唯一标识的场景,如数据库主键、分布式系统、文件命名等。uuid 模块提供了生成不同版本 UUID 的功能,基于标准化的 RFC 4122 规范。原创 2025-05-14 11:58:35 · 1983 阅读 · 0 评论 -
【Python】__future__ 模块:当前 Python 版本中使用未来版本的新功能或行为
在 Python 中,__future__ 是一个内置模块,用于启用新版本 Python 的功能或语法,以确保代码在当前版本中能够使用未来版本的行为。这是一个向后兼容的机制,允许开发者在旧版本的 Python 中逐步引入新特性,同时避免破坏现有代码。__future__ 模块通过导入特定的功能(称为“future statements”)来改变 Python 解释器的行为。常用特性:print_function、unicode_literals、division、annotations 等。用法:模块开头导原创 2025-05-14 10:50:12 · 836 阅读 · 0 评论 -
【Python】pytest 库:功能强大且广泛使用的开源测试框架
pytest 是 Python 中一个功能强大且广泛使用的测试框架,用于编写和运行单元测试、集成测试以及其他类型的测试。它以简单易用、灵活性和强大的插件生态系统而闻名,适合从小型项目到大型应用的测试需求。相比 Python 内置的 unittest 模块,pytest 提供更简洁的语法、更少的样板代码和丰富的功能。本文将详细介绍 pytest 库,包括其核心功能、用法、常见特性、插件系统以及最佳实践。原创 2025-05-13 17:46:38 · 883 阅读 · 0 评论 -
【Python】错误(Errors) 和异常(Exceptions)
在 Python 中,错误(Errors) 和异常(Exceptions) 是程序运行时可能遇到的非正常情况。Python 使用异常机制来处理错误,允许开发者捕获和处理异常以避免程序崩溃。异常体系:以 BaseException 为根,Exception 为主要异常基类,包含 TypeError、ValueError 等常见错误。异常处理:使用 try、except、else、finally 捕获和处理异常。自定义异常:通过继承 Exception 定义特定错误。最佳实践:具体捕获、清理资源、提供清晰错误信原创 2025-05-13 16:12:01 · 746 阅读 · 0 评论 -
【Python】类型转换
ython 中的类型转换通过内置函数(如 int()、float()、str()、list() 等)实现,广泛应用于处理用户输入、文件数据、API 响应等场景。高级工具(如 json、ast.literal_eval、pydantic)支持更复杂的类型转换需求。以下是关键点:常用函数:int、float、str、bool、list、tuple、set、dict。注意事项:处理异常、避免数据丢失、检查兼容性。最佳实践:显式转换、验证输入、使用默认值、结合类型注解。原创 2025-05-12 22:44:45 · 1309 阅读 · 0 评论 -
【Python】类型判断
Python 提供了多种类型判断工具,包括:type():返回具体类型,适合简单检查。isinstance():检查类型或子类,适合面向对象场景。issubclass():检查类继承关系。match-case:结合模式匹配进行复杂类型和结构检查。类型注解和 typing:支持静态和运行时类型检查。在实践中,isinstance() 是最常用的方法,因其支持继承和多类型检查。结合类型注解和异常处理,可以写出更健壮的代码。对于复杂场景,match-case 和 pydantic 等工具提供了更强大的类型处理能力原创 2025-05-12 22:40:32 · 985 阅读 · 0 评论 -
【Python】match-case 语句:结构化模式匹配
Python 的 match-case 语句是结构化模式匹配的强大工具,提供了比传统 if-else 更简洁和表达力更强的语法。它支持多种模式(字面量、捕获、序列、映射、类、或模式等),适用于处理复杂数据结构、状态机、事件处理等场景。与 dataclasses 结合使用时尤其高效,能够优雅地解构和处理对象属性。原创 2025-05-12 21:48:16 · 1074 阅读 · 0 评论 -
【Python】sse_starlette 库:为 Starlette 和 FastAPI 框架提供对 Server-Sent Events(SSE,服务器推送事件)的支持
sse_starlette 是一个 Python 库,为 Starlette 和 FastAPI 框架提供对 Server-Sent Events(SSE,服务器推送事件)的支持。它通过 EventSourceResponse 类实现 SSE 协议,允许服务器异步向客户端推送实时数据,适合构建实时 Web 应用,如通知系统、实时仪表盘或流式数据更新。sse_starlette 轻量且与 ASGI 框架无缝集成,常用于需要高效单向通信的场景。原创 2025-05-12 13:01:46 · 1908 阅读 · 1 评论 -
【Python】uvicorn 库:运行支持 ASGI 的 Web 应用程序
uvicorn 是一个高性能的 ASGI(Asynchronous Server Gateway Interface)服务器实现,用于运行 Python 异步 Web 应用程序。它基于 asyncio 和 uvloop(可选),以其速度快、轻量和对异步框架(如 FastAPI、Starlette)的优秀支持而闻名。uvicorn 是 FastAPI 应用的首选服务器,常用于生产环境和开发调试。原创 2025-05-12 13:01:27 · 1289 阅读 · 0 评论 -
【Python】nest_asyncio 库:允许在现有 asyncio 事件循环中运行新的异步代码
nest_asyncio 是一个轻量级 Python 库,用于解决 Python asyncio 事件循环在嵌套场景下的限制。它允许在已经运行的事件循环中再次运行事件循环,特别适合在 Jupyter Notebook、交互式 shell 或需要嵌套异步操作的场景中。nest_asyncio 通过修补 asyncio 的行为,简化了异步代码的开发和调试。原创 2025-05-12 12:58:43 · 1095 阅读 · 0 评论 -
【Python】typing_extensions 库:提供对 Python 类型注解的扩展支持
typing_extensions 是一个 Python 库,提供对 Python 类型注解的扩展支持,包含在较新 Python 版本中引入的类型功能(如 Literal、TypedDict、Protocol),并将其回溯到旧版本。它是 typing 标准库的补充,广泛用于需要高级类型注解的场景,如静态类型检查(使用 mypy、pyright)、IDE 类型提示和现代 Python 项目。原创 2025-05-12 12:57:28 · 1457 阅读 · 0 评论 -
【Python】getpass 模块:安全地获取用户输入的密码或敏感信息
getpass 是 Python 标准库中的模块,用于安全地获取用户输入的密码或敏感信息。它提供了一种在命令行中隐藏输入内容的方法,避免密码在终端显示,适用于需要安全输入的脚本或应用程序。getpass 简单易用,常用于命令行工具、脚本自动化和身份验证场景。原创 2025-05-11 10:18:20 · 1444 阅读 · 1 评论 -
【Python】SQLAlchemy 库:功能强大且灵活的 数据库操作 库
SQLAlchemy 是一个功能强大且灵活的 Python 库,用于数据库操作。它提供了对象关系映射(ORM)和核心 SQL 表达式语言(Core),支持与多种数据库(如 SQLite、PostgreSQL、MySQL、Oracle)交互。SQLAlchemy 兼顾高层次的 ORM 抽象和低层次的 SQL 控制,广泛应用于 Web 开发、数据分析和企业应用。本文是对 SQLAlchemy 库的详细介绍,包括其功能、用法和实际应用原创 2025-05-11 10:15:49 · 1193 阅读 · 0 评论 -
【Python】jq 库:轻量级且功能强大的 JSON 处理工具
jq 是一个轻量级且功能强大的 JSON 处理工具,最初作为命令行工具存在,而 Python 中的 jq 库(jq.py)是其 Python 绑定,允许在 Python 代码中直接使用 jq 的 JSON 查询和转换功能。通过 jq 库,开发者可以利用 jq 的强大查询语法(如过滤、映射、转换)处理复杂的 JSON 数据,而无需依赖外部命令行工具。它特别适合需要解析、过滤或转换嵌套 JSON 结构的场景,如 API 数据处理、数据分析或 ETL 管道。原创 2025-05-10 00:23:40 · 1067 阅读 · 0 评论 -
【Python】pprint 模块:以人类易读的方式格式化输出复杂的数据结构(如嵌套字典、列表)
pprint 是 Python 标准库中的模块,全称 “pretty print”,用于格式化输出复杂的数据结构(如字典、列表、嵌套对象),使其更易读。与内置的 print 函数相比,pprint 提供更好的排版,自动添加换行和缩进,尤其适合调试或展示嵌套数据结构。pprint 模块简单易用,广泛用于开发、数据分析和日志记录。原创 2025-05-10 00:22:43 · 1258 阅读 · 0 评论 -
【Python】unstructured 库:处理和预处理非结构化数据(如 PDF、Word 文档、HTML、图片等),转换为结构化格式
unstructured 是一个 Python 开源库,设计用于处理和预处理非结构化数据(如 PDF、Word 文档、HTML、图片等),将其转换为结构化格式,方便下游机器学习(ML)或大语言模型(LLM)任务。它提供模块化的组件(称为“bricks”),支持文档分区、清理和格式化,广泛应用于数据管道、RAG(Retrieval-Augmented Generation)系统和文档分析。原创 2025-05-09 18:50:02 · 2752 阅读 · 0 评论 -
【Python】enum 模块:创建和管理枚举类型(Enumerations)
enum 是 Python 标准库中的模块(自 Python 3.4 引入),用于创建和管理枚举类型(Enumerations)。枚举是一组命名的常量集合,可以提高代码的可读性、类型安全性和维护性。enum 模块支持定义枚举类、访问枚举成员、比较和迭代,适合需要固定选项或状态的场景,如状态机、配置选项或分类标签。支持多种枚举类型:Enum:基本枚举。IntEnum:整数枚举,支持数值比较。Flag:位标志枚举,支持位运算。IntFlag:整数位标志枚举。原创 2025-05-09 11:03:31 · 670 阅读 · 0 评论 -
【Python】tiktoken 库:OpenAI 开发的快速字节对编码(Byte Pair Encoding, BPE)分词器库
tiktoken 是一个由 OpenAI 开发的快速字节对编码(Byte Pair Encoding, BPE)分词器库,专门为 OpenAI 的语言模型(如 GPT-3、GPT-4)设计。它用于将文本转换为模型可处理的 token(标记),并支持 token 计数、编码和解码操作。tiktoken 以高效性和速度著称,广泛应用于自然语言处理(NLP)、API 成本估算和输入验证。原创 2025-05-08 15:23:28 · 1363 阅读 · 0 评论 -
【Python】上下文管理器(Context Manager):自动执行初始化和清理操作
在 Python 中,上下文管理器(Context Manager)是一种用于管理资源的工具,它允许在代码块执行前后自动执行初始化和清理操作。上下文管理器通常与 with 语句一起使用,确保资源(如文件、数据库连接、网络连接等)在代码执行完成后被正确释放,即使发生异常也不例外。上下文管理器是 Python 中实现资源管理和异常安全的重要机制,广泛应用于文件操作、线程锁、数据库事务等场景。原创 2025-05-08 12:33:52 · 970 阅读 · 0 评论 -
【Python】loguru 库:轻量、易用且功能强大的 日志库
loguru 是一个轻量、易用且功能强大的 Python 日志库,旨在简化日志记录。它提供了一个直观的 API,支持彩色日志输出、文件写入、异步日志、结构化日志等功能,相比 Python 标准库的 logging 模块,loguru 配置更简单,输出更美观,适合快速开发和复杂应用。原创 2025-05-07 22:41:30 · 1450 阅读 · 1 评论