Python
基础语法
01概念
02安装
03变量
04字符串
05数
06常量与注释
07列表
08元组
09if语句
10字典
11集合
12复合数据类型对比
13推导式
14用户输入
15while循环
16函数
17类
18面向对象编程
19文件操作
20异常处理
21日期和时间
22魔术方法
23内置函数
24线程
25并发&并行
26正则表达式
27迭代器
28装饰器
29生成器
30上下文管理器
31函数式编程
32闭包
33解包
34工具库
35连接关系型数据库
36虚拟环境
37异步编程
网络爬虫
01urllib库[了解]
02requests库
03数据交换格式
04解析库
05lxml
06Beautiful Soup
07Xpath语法
08动态网页的处理
-
+
首页
34工具库
Python 的工具库生态极为丰富,可分为**标准库**(Python 自带,无需额外安装)和**第三方库**(需通过pip安装),覆盖数据处理、Web 开发、自动化、人工智能等几乎所有编程场景。 ## 标准库(内置工具,开箱即用) 标准库是 Python 的 “内置工具箱”,随 Python 安装,无需额外配置,覆盖基础开发需求。 ### 数据处理与结构 **collections**:扩展数据结构,弥补内置类型(list/dict等)的不足。 核心工具: - defaultdict:带默认值的字典(避免KeyError); - deque:双端队列(高效 append/pop 两端元素,适合队列 / 栈场景); - Counter:计数工具(统计元素出现次数); - namedtuple:命名元组(可通过属性名访问元素,比元组更易读)。 示例:用Counter统计字符串中字符出现次数。 ```python from collections import Counter s = "hello world" count = Counter(s) print(count.most_common(2)) # 输出出现次数前2的元素:[('l', 3), ('o', 2)] ``` **itertools**:高效迭代工具,用于生成和处理可迭代对象(列表、元组等)。 核心工具: - chain:串联多个可迭代对象; - product:计算笛卡尔积(如嵌套循环的扁平化); - permutations/combinations:生成排列 / 组合; - groupby:按 key 分组迭代。 示例:用product生成两个列表的笛卡尔积。 ```python from itertools import product a = [1, 2] b = ['x', 'y'] print(list(product(a, b))) # [(1, 'x'), (1, 'y'), (2, 'x'), (2, 'y')] ``` **functools**:函数式编程工具,增强函数操作能力。 核心工具: - lru_cache:缓存函数结果(优化重复计算,如递归、高频调用); - partial:固定函数部分参数(生成新函数); - reduce:累积计算(如求和、求积)。 示例:用lru_cache缓存斐波那契数列计算结果。 ```python from functools import lru_cache @lru_cache(maxsize=None) # 缓存所有结果 def fib(n): return n if n <= 1 else fib(n-1) + fib(n-2) print(fib(100)) # 快速计算,避免重复递归 ``` ### 文件与 I/O 操作 **os/os.path**:与操作系统交互,处理文件路径、目录操作。 核心功能:创建 / 删除目录(os.mkdir/os.rmdir)、获取环境变量(os.environ)、路径拼接(os.path.join)等。 示例:遍历目录下所有文件。 ```python import os for root, dirs, files in os.walk("./data"): for file in files: print(os.path.join(root, file)) # 输出完整文件路径 ``` **pathlib**:面向对象的路径处理库(Python 3.4+),比os.path更直观。 示例:简化路径操作。 ```python from pathlib import Path file_path = Path("./data/report.txt") print(file_path.exists()) # 检查文件是否存在 print(file_path.parent) # 获取父目录:./data print(file_path.suffix) # 获取文件后缀:.txt ``` **json/csv**:处理结构化数据格式。 - json:解析 JSON 字符串与 Python 字典 / 列表互转; - csv:读写 CSV 文件(表格数据)。 示例:读写 JSON 文件。 ```python import json data = {"name": "Alice", "age": 25} # 写入JSON文件 with open("data.json", "w") as f: json.dump(data, f, indent=2) # indent格式化输出 # 读取JSON文件 with open("data.json", "r") as f: loaded = json.load(f) print(loaded["name"]) # Alice ``` ### 网络与通信 **requests的 “标准库替代”:urllib/urllib3** urllib是标准库中处理 HTTP 请求的工具(urllib.request发送请求,urllib.parse解析 URL),但接口较繁琐,常被第三方库requests替代。 示例:用urllib发送 GET 请求。 ```python from urllib.request import urlopen with urlopen("https://api.github.com") as response: data = response.read().decode("utf-8") print(data[:100]) # 输出响应前100字符 ``` **socket**:底层网络通信库,用于实现 TCP/UDP 协议(如自定义客户端 / 服务器)。 示例:简单的 TCP 服务器。 ```python import socket with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind(("localhost", 8000)) s.listen() conn, addr = s.accept() with conn: print(f"连接来自 {addr}") while True: data = conn.recv(1024) if not data: break conn.sendall(data) # 回声服务 ``` ### 并发与多任务 **threading**:多线程库(适合 I/O 密集型任务,如网络请求、文件读写)。 **multiprocessing**:多进程库(适合 CPU 密集型任务,如数据计算,规避 GIL 限制)。 **asyncio**:异步 I/O 库(Python 3.4+),通过协程实现高效并发(适合高并发网络服务)。 示例:用asyncio实现异步任务。 ```python import asyncio async def task(name, delay): await asyncio.sleep(delay) # 模拟I/O操作 print(f"任务 {name} 完成") async def main(): # 并发运行两个任务 await asyncio.gather(task("A", 1), task("B", 2)) asyncio.run(main()) # 输出:任务 A 完成 → 任务 B 完成 ``` ### 其他常用标准库 - **datetime**:处理日期和时间(解析、格式化、时区转换); - **re**:正则表达式工具(字符串匹配、提取、替换); - **unittest**:单元测试框架(编写测试用例、断言验证); - **logging**:日志记录工具(比print更灵活,支持分级、输出到文件等)。 ## 包管理工具 pip是 Python 官方的包管理工具,用于**安装、更新、卸载第三方库**,是使用 Python 第三方库的基础工具。 现代 Python(3.4+)已默认内置pip,无需单独安装。 验证pip是否安装,可以打开终端,执行以下命令: ```python pip --version ``` 若输入结果如下,则说明已安装: ```python C:\Users\root>pip --version pip 25.2 from S:\Python\Python313\Lib\site-packages\pip (python 3.13) ``` 若提示 “命令未找到”,需手动安装。 **安装pip(适用于未内置的环境)** ```python # 方法1:通过Python内置模块ensurepip安装 python -m ensurepip --default-pip # Python 2.x python3 -m ensurepip --default-pip # Python 3.x # 方法2:从官方脚本安装(推荐) curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 python get-pip.py # 执行安装(Python 2.x) python3 get-pip.py # 执行安装(Python 3.x) ``` **升级pip到最新版本** ```python # 升级pip自身 pip install --upgrade pip # 或 pip3 install --upgrade pip ``` **核心命令** | 功能 | 命令示例 | 说明 | | -------------- | ------------------------------- | ------------------------------------------------- | | 安装库 | pip install requests | 安装最新版本的requests库 | | 安装指定版本 | pip install requests==2.25.1 | 安装requests的 2.25.1 版本 | | 升级库 | pip install --upgrade requests | 将已安装的requests升级到最新版本 | | 卸载库 | pip uninstall requests | 卸载requests库(需确认) | | 列出已安装的库 | pip list | 显示所有已安装的库及版本 | | 查看库详情 | pip show requests | 显示requests的安装路径、依赖等信息 | | 搜索库 | pip search flask | 搜索 PyPI 上含 “flask” 关键词的库(部分环境受限) | | 导出依赖列表 | pip freeze > requirements.txt | 将当前环境的库及版本导出到文件 | | 从依赖列表安装 | pip install -r requirements.txt | 批量安装requirements.txt中的库 | **注意事项** **权限问题**:全局安装时可能需要管理员权限(Windows 用 “以管理员身份运行” 终端;macOS/Linux 加sudo,如sudo pip3 install requests)。 **虚拟环境**:推荐使用虚拟环境(venv/conda)隔离项目依赖,避免全局库冲突。 示例:创建并激活虚拟环境。 ```python # 创建虚拟环境(Python 3.x) python3 -m venv myenv # 在当前目录创建myenv文件夹 # 激活虚拟环境 # Windows(命令提示符):myenv\Scripts\activate # Windows(PowerShell):.\myenv\Scripts\Activate.ps1 # macOS/Linux:source myenv/bin/activate # 激活后终端会显示(myenv),此时pip安装的库仅在该环境生效 ``` ## 第三方库 第三方库由社区开发,需通过pip install <库名>安装,覆盖更专业的场景(如 Web 开发、数据科学、AI 等)。 ### Web 开发 **Django**:全栈 Web 框架(“batteries-included” 理念),内置 ORM、Admin 后台、用户认证等,适合快速开发复杂网站(如电商、内容管理系统)。 特点:开箱即用,遵循 MVT(Model-View-Template)架构,安全性高。 **Flask**:轻量级 Web 框架(“微框架”),核心功能简洁,通过扩展(如Flask-SQLAlchemy、Flask-Login)灵活扩展,适合小型应用或 API 服务。 示例:用 Flask 编写简单 API。 ```python from flask import Flask app = Flask(__name__) @app.route("/hello/<name>") def hello(name): return f"Hello, {name}!" if __name__ == "__main__": app.run(debug=True) # 启动服务,访问 http://localhost:5000/hello/Alice ``` **FastAPI**:高性能 API 框架(基于 Starlette 和 Pydantic),支持异步、自动生成 API 文档(Swagger),适合构建高性能后端服务(尤其机器学习 API)。 ### 数据科学与分析 **NumPy**:数值计算基础库,提供高性能的多维数组(ndarray)和数学函数,是数据科学的 “基石”(Pandas、Matplotlib 等均依赖它)。 示例:数组运算。 ```python import numpy as np arr = np.array([[1, 2], [3, 4]]) print(arr * 2) # 元素级乘法:[[2 4], [6 8]] print(arr.mean()) # 平均值:2.5 ``` **Pandas**:数据分析与处理库,核心是DataFrame(表格数据结构),支持数据清洗、筛选、分组、合并等,是处理 CSV/Excel/ 数据库数据的首选工具。 示例:用 Pandas 分析表格数据。 ```python import pandas as pd df = pd.DataFrame({ "name": ["Alice", "Bob"], "age": [25, 30], "salary": [5000, 6000] }) print(df[df["age"] > 26]) # 筛选年龄>26的行 print(df.groupby("age").mean(numeric_only=True)) # 按年龄分组求平均 ``` **Matplotlib**:基础可视化库,支持绘制折线图、柱状图、散点图等,高度可定制(适合 publication 级图表)。 **Seaborn**:基于 Matplotlib 的高级可视化库,内置美观主题和统计图表(如热力图、小提琴图),代码更简洁。 示例:用 Seaborn 绘制散点图。 ```python import seaborn as sns tips = sns.load_dataset("tips") # 内置数据集 sns.scatterplot(data=tips, x="total_bill", y="tip", hue="time") # 按时间着色 ``` ### 机器学习与人工智能 **Scikit-learn**:经典机器学习库,封装了分类、回归、聚类、降维等算法(如 SVM、随机森林、PCA),API 统一,适合入门和快速原型开发。 示例:用随机森林分类。 ```python from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target) model = RandomForestClassifier() model.fit(X_train, y_train) print("准确率:", model.score(X_test, y_test)) ``` **TensorFlow/PyTorch**:深度学习框架,支持构建神经网络(CNN、RNN、Transformer 等),适用于图像识别、自然语言处理(NLP)等任务。 - TensorFlow:Google 开发,生态完善(Keras 高层 API),适合生产环境部署; - PyTorch:Facebook 开发,动态计算图,调试友好,科研领域更流行。 **Transformers**(Hugging Face):NLP 专用库,提供预训练模型(如 BERT、GPT),支持文本分类、翻译、生成等任务,开箱即用。 ### 自动化与工具 **Requests**:简化 HTTP 请求(比标准库urllib更易用),支持 GET/POST、会话保持、文件上传等。 示例:发送 POST 请求。 ```python import requests response = requests.post( "https://httpbin.org/post", json={"name": "Alice"}, headers={"Content-Type": "application/json"} ) print(response.json()) # 解析JSON响应 ``` **Selenium**:自动化测试工具,可控制浏览器(模拟点击、输入),用于网页爬取(动态加载内容)或 UI 测试。 **Beautiful Soup**:HTML/XML 解析库,用于提取网页数据(配合Requests爬取静态网页)。 示例:爬取网页标题。 ```python from bs4 import BeautifulSoup import requests response = requests.get("https://www.python.org") soup = BeautifulSoup(response.text, "html.parser") print(soup.title.text) # 输出Python官网标题 ``` **PyAutoGUI**:GUI 自动化工具,控制鼠标、键盘(如自动点击、输入文本),用于自动化桌面操作。 **其他热门第三方库** - **SQLAlchemy**:ORM(对象关系映射)库,用 Python 类操作数据库(支持 MySQL、PostgreSQL 等),避免直接写 SQL; - **Pillow(PIL)**:图像处理库(裁剪、滤镜、格式转换等); - **PyYAML**:处理 YAML 格式文件(配置文件常用); - **Click**:命令行工具开发库(快速构建命令行接口)。 ## 工具库的选择与管理 **选择原则**: - 优先选**社区活跃**(GitHub 星数多、更新频繁)的库(如 Pandas、Flask); - 生产环境需考虑**稳定性**(避免过度依赖 alpha 版本); - 小型项目选轻量库(如 Flask),大型项目选全功能库(如 Django)。 **管理工具**: - pip:基础包管理(安装 / 卸载 / 列出包); - conda:数据科学领域常用(管理 Python 环境和包,尤其支持非 Python 依赖); - poetry/pipenv:现代包管理工具(整合依赖管理、虚拟环境、打包功能)。 Python 工具库覆盖了从基础开发到专业领域的全场景: - **标准库**是基础,提供文件操作、网络通信、数据结构等核心功能; - **第三方库**扩展了生态,Web 开发(Django/Flask)、数据科学(Pandas/NumPy)、AI(TensorFlow/PyTorch)等领域均有成熟工具。
毛林
2025年9月7日 11:45
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码