跳到主要内容

模块、导入与常用标准库

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、时间、组合、随机数
  • 如果是,先查标准库
  • 只有标准库不够用,再引第三方库

关联阅读