模块、导入与常用标准库
Python 的优势之一就是标准库很丰富。很多需求其实不需要自己手写,先想一想“标准库里是不是已经有了”通常能省很多时间。
import 的基本写法
import math
import json
用模块名访问其中的函数:
print(math.sqrt(16))
也可以只导入你需要的对象:
from math import sqrt, pi
如果模块名比较长,可以起别名:
import numpy as np
import pandas as pd
模块与包
- 一个
.py文件就可以看作一个模块。 - 一个包含多个模块的目录通常可以看作一个包。
当文件开始变多时,我更倾向于按职责拆模块,而不是把所有函数都堆进一个脚本里。
if __name__ == "__main__"
这个判断的作用是:让文件既能被导入,也能直接 运行。
def main():
print("run as script")
if __name__ == "__main__":
main()
常见场景:
- 导入时:只复用函数,不执行测试代码
- 直接运行时:执行演示、调试或命令行入口
高频标准库
1. math
适合做基础数学运算:
import math
print(math.sqrt(9))
print(math.floor(3.8))
print(math.pi)
2. collections
我最常用的是:
Counter:计数deque:双端队列defaultdict:默认值字典
from collections import Counter, deque, defaultdict
print(Counter("banana"))
queue = deque([1, 2, 3])
mapping = defaultdict(list)
3. pathlib
现代 Python 里处理路径时,我更推荐 pathlib 而不是到处拼字符串。
from pathlib import Path
root = Path("data")
file_path = root / "users.csv"
print(file_path.exists())
4. json
适合处理 JSON 文件和接口返回:
import json
payload = {"name": "alice", "score": 95}
text = json.dumps(payload, ensure_ascii=False)
restored = json.loads(text)
5. itertools
这个模块很适合处理组合、排列和迭代器:
from itertools import product
for pair in product([1, 2], ["a", "b"]):
print(pair)
什么时候自己写,什么时候先查标准库
我现在的习惯是:
- 先判断是不是常见问题:路径、计数、队列、JSON、时间、组合、随机数
- 如果是,先查标准库
- 只有标准库不够用,再引第三方库