Python 语法速查表 - Python 常用命令与方法大全
这套速查面向刚入门或经常在不同项目间切换的 Python 开发者,取其写脚本、处理文本与数据、做小自动化时最高频的语法点。与罗列一遍 API 的文档不同,这里按实际使用场景(环境、容器、文件 IO、异常)组织,照着写即可。看完本页,你应该能独立建好 venv 环境、用推导式精简循环、安全地读写文件与 JSON,并用 try/except 兜住运行错误。
典型使用场景
面向以脚本和数据处理为主业的开发者:从零给新项目建 venv 并装上依赖,用推导式把冗长循环压成一行,按字段清洗 CSV 或日志,再用 with + json 把中间结果落盘。无论是补一个临时工具、跑一次性报表,还是给已有服务写定时任务,这套命令都是最先被反复用到的那批。
虚拟环境与包管理 8
python3 -m venv venvsource venv/bin/activatevenv\Scripts\activatedeactivatepip install packagepip install -r requirements.txtpip freeze > requirements.txtpip list数据类型 Data Types 7
list = [1, 2, 3]tuple = (1, 2, 3)dict = {"key": "value"}set = {1, 2, 3}str = "hello"type(obj)isinstance(obj, int)列表推导式 List Comprehension 5
[x*2 for x in range(10)][x for x in range(10) if x % 2 == 0]{x: x*2 for x in range(5)}{x for x in range(10) if x % 2 == 0}list(map(lambda x: x*2, [1,2,3]))文件操作 File I/O 8
with open("file.txt", "r") as f: content = f.read() lines = f.readlines()with open("file.txt", "w") as f: f.write("content")with open("file.txt", "a") as f:import json; json.load(f)json.dump(data, f, indent=2)异常处理 Exception 8
try: result = 10 / 0except ZeroDivisionError as e: print(f"Error: {e}")except Exception as e:else:finally:raise ValueError("msg")常用内置函数 Built-in 8
len(obj)range(start, stop, step)enumerate(iterable)zip(list1, list2)sorted(iterable, key=None, reverse=False)filter(func, iterable)map(func, iterable)any(iterable) / all(iterable)命令示例
一行生成递增整数序列
[x*2 for x in range(10)]range(stop) 是左闭右开,stopping 值不包含;要从 1 数到 10 请写 range(1, 11)。
输出
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
读取并写出 JSON 文件
import json
with open("data.json", "r", encoding="utf-8") as f:
data = json.load(f)
with open("out.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)ensure_ascii=False 才会保留中文可读,否则非 ASCII 字符会被写成 \uXXXX 转义;with 语句保证文件在出错或正常结束时都被正确关闭。
traceback 定位异常来源
try:
result = 10 / 0
except ZeroDivisionError as e:
print(f"Error: {e}")先用精确的异常类型,等真正需要兜底时再用 except Exception 捕获,避免吞掉不该忽略的 KeyboardInterrupt。
输出
Error: division by zero
创建虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate
pip install requests
pip freeze > requirements.txtWindows 下激活改用 venv\Scripts\activate;requirements.txt 应在每次添加依赖后重新导出保持一致。
输出
(venv) $
常见坑与注意事项
- 不要用全局 pip 乱装包:改用它人的 requirements.txt 或开源项目前先在 venv 里试,避免污染系统 Python 或和系统自带包冲突。
- range() 是半开区间(不含末值),写循环上界时最容易差一;从 1 起就写 range(1, n + 1)。
- 在 with 外裸用 open() 且忘了 close,或用 mode="w" 时没注意它会先清空文件——写入关键数据前先确认路径和模式。
- except Exception 兜底会同时吞掉 KeyboardInterrupt(Ctrl+C)等,别把所有错误都静默吃掉,至少记录或抛一部分。
提示
- 始终使用 with 语句操作文件,确保文件正确关闭,即使发生异常。
- 列表推导式比 for 循环更简洁高效,但复杂逻辑还是用普通循环更易读。
- Python 3 中 range() 返回的是迭代器,不是列表,节省内存。
常见问题
python 必须要用虚拟环境吗?
不是必须,但强烈建议。直接用 pip install 装到的包会写进全局 site-packages,多项目之间容易版本冲突。用 python -m venv .venv 建独立环境、激活后再装依赖,就能把依赖隔离在项目内。
python 里 == 和 is 有什么区别?
== 比较两个对象的值是否相等,is 比较两个变量是否指向同一个内存对象。对数字、字符串等小对象可能碰巧相同,但列表、字典等可变对象里 is 通常为 False,因此判内容相等用 ==,is 只用来判断是否同一对象或是否 None。
python 列表推导式和生成器表达式怎么选?
两者语法类似,生成器表达式只是把外层方括号换成圆括号。列表推导式立即生成整个列表、占内存,适合要反复遍历或切片的结果;生成器表达式按需惰性产出、省内存,适合只需单遍遍历海量数据或做 sum/min/max 聚合时。
python 里 with open() 为什么推荐,忘记关闭文件怎么办?
with open(path) as f 会在代码块结束时自动调用 f.close(),即使中途抛异常也会执行,避免文件句柄泄漏。若手写 open() 而不 close,文件可能被占用、缓冲区未刷入磁盘,因此应尽量用 with,需要手动管理时务必在 finally 中 close。
python 里应该捕获所有异常吗?
不建议裸用 except 吞掉一切异常,会掩盖真实错误、难以排查。应捕获具体的异常类型(如 ValueError、KeyError),或至少用 except Exception,并在处理后用 raise 或日志把错误暴露,让问题可定位。
由 巧匠 维护
公开更新于 2026年7月21日,内容持续校对官方文档。