Python 语法速查表 - Python 常用命令与方法大全

这套速查面向刚入门或经常在不同项目间切换的 Python 开发者,取其写脚本、处理文本与数据、做小自动化时最高频的语法点。与罗列一遍 API 的文档不同,这里按实际使用场景(环境、容器、文件 IO、异常)组织,照着写即可。看完本页,你应该能独立建好 venv 环境、用推导式精简循环、安全地读写文件与 JSON,并用 try/except 兜住运行错误。

编程语言·共 44 条命令·最后更新 2026-07-21

典型使用场景

面向以脚本和数据处理为主业的开发者:从零给新项目建 venv 并装上依赖,用推导式把冗长循环压成一行,按字段清洗 CSV 或日志,再用 with + json 把中间结果落盘。无论是补一个临时工具、跑一次性报表,还是给已有服务写定时任务,这套命令都是最先被反复用到的那批。

虚拟环境与包管理 8

python3 -m venv venv
在项目目录下创建独立虚拟环境 venv,隔离依赖,避免与系统 Python 的全局包相互污染(Python 3.3+ 自带 venv 模块)
source venv/bin/activate
激活虚拟环境(Linux/Mac),激活后命令行前缀出现 (venv),此时 pip 安装的包进入该环境
venv\Scripts\activate
激活虚拟环境(Windows,PowerShell 通常用 venv\Scripts\Activate.ps1)
deactivate
退出当前虚拟环境,恢复到系统全局 Python
pip install package
下载安装指定包到当前环境;国内可加 -i 指定镜像源加速,或 -U 升级到最新版
pip install -r requirements.txt
按 requirements.txt 逐行安装依赖,常用于克隆项目或部署时复现环境
pip freeze > requirements.txt
导出当前环境所有已装包及其精确版本,供他人复现相同环境
pip 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:
读取文件(推荐用 with 自动关闭)
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 文件
json.dump(data, f, indent=2)
写入 JSON 文件

异常处理 Exception 8

try:
尝试执行代码
result = 10 / 0
可能抛出异常的代码
except 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.txt

Windows 下激活改用 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日,内容持续校对官方文档。

联系我们

命令或描述有误?提交反馈、商务合作或产品建议都可发送邮件给我们。

联系我们