Python 解释器与交互模式
本教程共 70 篇 · 第 4 篇 · 更新于 2026-07-22 · 约 5 分钟阅读
4. Python 解释器与交互模式
本节目标:深入理解 Python 解释器的工作方式,掌握交互模式的进阶技巧。
什么是解释器
你写的 Python 代码,计算机是看不懂的。需要有一个「翻译」把它转成机器能执行的指令,这个翻译就是解释器(Interpreter)。
Python 是解释型语言。和 C/C++ 这种编译型语言不同,Python 不需要先编译成可执行文件。代码保存为 .py 文件后,解释器逐行读取、逐行执行。好处是开发快、调试方便;代价是运行速度比编译型语言慢一些。
Note严格来说,Python 代码会先被编译成字节码(.pyc 文件),再由虚拟机执行。这个过程对你透明,不需要手动操作。
启动解释器的多种方式
1. 命令行交互模式
python
进入后提示符变成 >>>,适合快速验证想法、测试小段代码。
2. 执行脚本文件
python hello.py
这是正式运行程序的方式。一次性执行文件里的全部代码。
3. 执行单行代码
python -c "print(1 + 2)"
-c 参数后面跟一段字符串代码,适合临时执行简单任务。
4. 以模块方式运行
python -m http.server 8000
-m 参数运行指定模块。上面这行会在当前目录启动一个简易的 HTTP 文件服务器,在浏览器访问 localhost:8000 就能浏览文件。
5. 执行后进入交互模式
python -i hello.py
-i 参数让脚本执行完后不退出,而是进入 >>> 交互模式。方便你继续操作脚本里定义的变量和函数。
交互模式小技巧
自动打印结果
交互模式有个便利之处:表达式的结果会自动打印,不用写 print()。
>>> 3 + 5
8
>>> "Hello" + " World"
'Hello World'
但在 .py 文件里,表达式不写 print() 是不会有输出的。这一点经常让新手困惑。
上下箭头浏览历史
在 >>> 里按上下箭头,可以调出之前输入过的代码。按回车就能重新执行,或修改后再执行。
Tab 自动补全
输入几个字母后按 Tab,会自动补全变量名、函数名。如果有多项匹配,按两次 Tab 列出所有选项。
>>> pr<Tab> # 自动补全为 print
>>> print(<Tab><Tab> # 列出 print 的参数提示
内建帮助系统
忘了某个函数怎么用?用 help():
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
...
按 q 退出帮助页面。
也可以用 ? 在 IPython 里查(见下文),更简洁。
特殊变量 _
交互模式里,上一个表达式的结果会自动存入 _(下划线):
>>> 100 + 200
300
>>> _ * 2
600
这在连续计算时很方便。
安装 IPython(进阶)
如果觉得默认的交互模式功能太单薄,可以安装 IPython。它提供了更强大的自动补全、语法高亮、魔法命令等功能。
pip install ipython
安装后启动:
ipython
IPython 的亮点
彩色输出和语法高亮:代码更易读,错误信息更醒目。
魔法命令:以 % 开头的特殊命令。常用的是:
In [1]: %timeit sum(range(1000)) # 测试代码运行时间
In [2]: %run hello.py # 运行脚本文件
In [3]: %history # 查看输入历史
? 快速查文档:
In [1]: print? # 查看 print 的文档
In [2]: str.upper?? # 查看源码(如果可用)
TipIPython 也是 Jupyter Notebook 的核心。后面学数据分析时,你会经常遇到它。现在先知道有这么个更强的交互工具就行。
交互模式 vs 脚本模式
| 交互模式 | 脚本模式 | |
|---|---|---|
| 用途 | 测试、学习、调试 | 正式运行程序 |
| 代码保存 | 不保存,退出即消失 | 保存在 .py 文件 |
| 输出 | 表达式结果自动打印 | 必须写 print() |
| 错误处理 | 出错后停留在当前状态 | 出错后程序终止 |
我的建议是:学习新概念时先在交互模式里试,验证通过后再写到 .py 文件里保存。两者结合,效率最高。
来源:参考了 runoob「Python3 解释器」、liaoxuefeng「Python 解释器」、pythondoc「使用 Python 的解释器」「交互式编辑和编辑历史」、w3cschool「Python3 解释器」等,改写后所得。