标准库概览
本教程共 70 篇 · 第 48 篇 · 更新于 2026-07-22 · 约 5 分钟阅读
48. 标准库概览
本节目标:了解 Python 标准库的组成,掌握
sys、os、math、random、statistics等核心模块的常用功能。
Python 的强大不仅在于语法简洁,更在于「自带电池」——安装 Python 的同时,你就获得了一个庞大的标准库。从文件操作到网络通信,从数据结构到加密算法,标准库覆盖了编程中的大部分常见需求。
这一章先做一个概览,让你知道「有哪些工具可用」。后续几章会深入讲解几个最常用的模块。
sys:与 Python 解释器交互
sys 模块提供访问解释器相关信息和功能的接口:
import sys
print(sys.version) # Python 版本信息
print(sys.platform) # 平台标识,如 'win32'、'darwin'、'linux'
print(sys.executable) # Python 解释器的路径
# 命令行参数
print(sys.argv) # 列表,第一个是脚本名,后面是传入的参数
# 退出程序
sys.exit(0) # 0 表示正常退出,非零表示异常
Tip
sys.path是一个列表,存储了模块搜索路径。如果你临时需要导入某个不在标准位置的模块,可以往里面追加路径:sys.path.append('/my/modules')。
os:操作系统接口
os 模块在第 45 章已经详细讲过。这里补充几个常用函数:
import os
print(os.environ.get('HOME')) # 读取环境变量
os.environ['MY_VAR'] = 'value' # 设置环境变量
print(os.cpu_count()) # CPU 核心数
print(os.urandom(16)) # 生成加密安全的随机字节
os.urandom 是真正的随机数生成器(基于操作系统提供的熵源),比 random 模块更安全,适合生成密钥、令牌。
math:数学函数
import math
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.141592653589793
print(math.e) # 自然常数
print(math.ceil(3.2)) # 4(向上取整)
print(math.floor(3.8)) # 3(向下取整)
print(math.factorial(5)) # 120
print(math.gcd(48, 18)) # 6(最大公约数)
print(math.log(100, 10)) # 2.0(以 10 为底的对数)
print(math.radians(180)) # π(角度转弧度)
print(math.degrees(math.pi)) # 180.0(弧度转角度)
NotePython 3.9+ 的
math模块新增了一些实用函数:math.lcm()(最小公倍数)、math.nextafter()(浮点数的下一个可表示值)、math.dist()(两点距离)。
random:伪随机数
import random
print(random.random()) # [0, 1) 之间的浮点数
print(random.randint(1, 10)) # [1, 10] 之间的整数
print(random.choice(['a', 'b', 'c'])) # 随机选一个元素
print(random.sample(range(100), 5)) # 不重复地随机选 5 个
# 打乱列表
items = [1, 2, 3, 4, 5]
random.shuffle(items)
print(items)
Warning
random模块生成的是「伪随机数」,基于算法,可预测。不要用它做密码学相关的操作(比如生成密钥、抽奖抽奖、验证码)。安全随机数用secrets模块或os.urandom()。
设置随机种子
调试时需要结果可复现,可以设种子:
random.seed(42)
print(random.random()) # 每次运行结果都一样
statistics:统计计算
import statistics
data = [1, 2, 3, 4, 5, 5, 6]
print(statistics.mean(data)) # 平均值 3.714...
print(statistics.median(data)) # 中位数 4
print(statistics.mode(data)) # 众数 5
print(statistics.stdev(data)) # 标准差
print(statistics.variance(data)) # 方差
Tip如果你的数据量很大,或者需要做复杂的统计分析(回归、假设检验等),标准库的
statistics就不够用了。此时应该上NumPy和SciPy。
其他值得知道的模块
标准库有上百个模块,这里列出一些常用的,混个脸熟:
| 模块 | 用途 |
|---|---|
itertools | 迭代器工具,排列组合、无限序列等 |
functools | 高阶函数工具,偏函数、缓存、装饰器等 |
operator | 运算符对应的函数(add、gt 等) |
hashlib | 哈希算法(MD5、SHA 系列) |
base64 | Base64 编解码 |
json | JSON 序列化(第 47 章已讲) |
re | 正则表达式(第 51 章讲) |
datetime | 日期时间(第 49 章讲) |
collections | 扩展数据结构(第 50 章讲) |
urllib | URL 处理(第 53 章讲) |
Note怎么查标准库文档?在交互式环境里用
help():help(math.sqrt)。或者访问官方文档:https://docs.python.org/zh-cn/3/library/ 。遇到问题时,先搜「python 标准库 + 你的需求」,大概率有现成方案。
实战:生成随机测试数据
把 random 和 statistics 结合起来,生成一组测试数据并分析:
import random
import statistics
random.seed(0)
scores = [random.randint(50, 100) for _ in range(30)]
print(f"成绩:{scores}")
print(f"平均分:{statistics.mean(scores):.1f}")
print(f"最高分:{max(scores)}")
print(f"最低分:{min(scores)}")
print(f"标准差:{statistics.stdev(scores):.1f}")
这个例子展示了标准库模块的组合使用:列表推导生成数据,random 控制随机性,statistics 做分析。
小结
sys:与解释器交互,获取版本、参数、路径等信息。os:操作系统接口,环境变量、路径、进程等。math:数学函数,三角、对数、取整等。random:伪随机数生成,注意不适合安全场景。statistics:基础统计计算,大数据请上 NumPy。
Python 标准库像一个大工具箱。你不需要记住每个函数的签名,但要大概知道「哪个抽屉里有什么」。遇到问题时有方向去查文档,这比盲目搜第三方库高效得多。
来源:参考了 runoob「Python3 标准库概览」、liaoxuefeng「常用内建模块」、pythondoc「10. 标准库简介」等,改写后所得。