您也可以在运行脚本后使用 -i 标志开启交互会话。例如,python -i calc_tax.py 会先执行 calc_tax.py,然后进入 REPL 环境,且脚本中的变量仍保留在内存中。
要退出 REPL,您可以使用以下任一方式:
-
输入
quit()或exit(),然后按 Enter。 -
在 Unix/Linux/macOS 上,按 Ctrl+D。
-
在 Windows 上,按 Ctrl+Z,然后按 Enter。
在 REPL 环境中运行代码
根据代码的复杂程度,您可以在 Python 的 REPL 会话中以不同方式运行代码。下面来看看可以在 REPL 中运行的代码类型。
简单语句和表达式
REPL 环境可以即时求值简单的表达式和语句。例如,您可以进行算术运算、变量赋值以及布尔表达式求值。表达式的结果会自动打印。
>>> 5 + 4
9
>>> name = "Allan"
>>> name
'Allan'
>>> 10 > 5
True如果某条语句(如变量赋值)不产生输出,REPL 解释器就不会打印任何内容。如果您出错,REPL 会通过抛出错误立即反馈。
复合语句
Python REPL 环境也能处理多行的复合语句,如 if 语句和 for 循环。当您输入以冒号(:)结尾的行并按下 Enter 时,它会自动切换到次级提示符(...),表示正在等待缩进代码块。
请注意,您需要手动缩进代码;REPL 环境不会自动缩进。要表示复合语句的结束,请在空行上按 Enter。
显式与隐式续行
您也可以在 Python REPL 会话中通过续行来编写多行语句。显式续行是在行末使用反斜杠 \,表示语句在下一行继续。
当代码被括号 ()、中括号 [] 或花括号 {} 包裹时,会自动发生隐式续行。
打印与求值
REPL 的自动打印功能仅对有返回值的表达式生效。例如,如果您有一个列表并使用 temp.append(45) 追加元素,将不会产生任何输出。要查看新列表,您需要在下一行显式求值该列表变量。对于返回 None 的函数,您需要使用 print() 才能看到输出。
实用的 REPL 功能
Python REPL 环境内置了多项有助于提高效率和学习的功能。下面我将介绍一些我认为实用的功能。
特殊变量 _
下划线(_)是 REPL 会话中的一个特殊变量,用于存储上一条表达式的结果。当您想复用结果而不必重新输入时非常有用。
在下面的示例中,_ 存储了值 30,它来自表达式 6*5 的结果。
自省工具
Python 提供了多种内置函数,用于交互式地探索对象和环境。下表总结了每个函数的用途及示例。
|
工具 |
用途 |
示例 |
|
|
返回当前局部作用域或指定对象中的所有名称(属性和方法)列表。 |
|
|
|
启动对象、模块或函数的内置帮助系统,显示其文档字符串(docstring)。 |
|
|
|
以字典形式返回对象的 |
|
|
|
返回表示当前局部符号表(当前作用域中的变量)的字典。 |
|
|
|
返回表示当前全局符号表(全局可访问的变量)的字典。 |
|
代码历史与 Tab 补全
REPL 通过如下历史记录与自动补全功能加速编码:
- 代码历史:您可以使用上下箭头键浏览先前输入的命令,以便快速重跑、修改或更正历史行。
- Tab 补全:用于补全变量名、模块名和对象属性。例如,输入
impor后按 Tab 会自动补全为import,或输入str..后按 Tab 会列出字符串方法。
键盘快捷键
以下是一些常用快捷键,可更高效地在 REPL 中操作。
|
快捷键 |
操作 |
|
Ctrl+C |
中断当前正在执行的命令(如耗时循环),并触发 |
|
Ctrl+D(Unix) |
退出 REPL(等同于 |
|
Ctrl+Z + Enter(Win) |
退出 REPL |
|
Ctrl+L |
清屏(类似 |
|
上 / 下箭头 |
浏览命令历史 |
|
Ctrl+A |
将光标移动到行首 |
|
Ctrl+E |
将光标移动到行尾 |
|
Ctrl+K |
从光标删除至行尾 |
|
Ctrl+U |
从光标删除至行首 |
自定义 REPL
可以按您的工作流与偏好自定义标准 Python REPL。
启动文件
将环境变量 PYTHONSTARTUP 设置为某个 Python 脚本的路径,使其在 REPL 启动时自动运行。该脚本可以预先导入常用模块、定义函数,或更改提示符字符串。
例如,创建文件 ~/.pystartup,内容如下:
import sys, os, math, random
print("Custom REPL ready. Pre-imported: sys, os, math, random")
# Change the prompt strings
import sys
sys.ps1 = ">>> "
sys.ps2 = "... "
如果您使用 Windows,可通过以下命令设置环境变量:
setx PYTHONSTARTUP "C:\path\to\pystartup.py"
使用 rich 提供丰富输出
您可以使用 rich 库增强并为 REPL 输出着色。首先需要通过 pip 安装 rich 模块。
pip install rich
然后在 Python REPL 会话中导入并启用 rich。下面的示例中,我使用该库以不同字体颜色打印单词。

可尝试的 REPL 命令示例
如您所见,Python 的 REPL 会话非常易用。试试以下命令来练习您的技能
|
命令 |
用途 |
输出/说明 |
|
|
自省:查看内置 |
|
|
|
文档:显示列表对象 append 方法的文档字符串,解释其工作方式。 |
关于 |
|
|
导入模块:加载标准库 |
无输出(但模块已可用)。 |
|
|
计算:获取 π 的值。 |
|
|
|
计算:计算 sin(π/2)。 |
|
|
|
快速测试:从列表中随机选择一项。 |
|
|
|
错误处理/退出:启动一个无限循环,然后按 Ctrl+C 中断并退出。 |
|
标准 REPL 环境的局限
尽管标准 Python 的 REPL 环境非常适合快速任务,但与现代 IDE 相比常显得受限。您会很快注意到一些缺失的功能,包括:
- 无语法高亮:所有代码都是纯文本。这使得快速区分关键字、字符串和注释变得困难,迫使您更加仔细阅读。
- 自动缩进有限:虽然能处理续行提示符(
...),但对于 if 和 for 等复合语句,您需要手动输入正确的缩进。 - 基础代码补全:内置 Tab 补全虽可用,但缺乏上下文感知建议、内联文档或模糊匹配等高级功能。
- 较差的多行编辑:编辑复杂的多行代码块较为繁琐。
- 提交后的代码块无法轻松编辑或从历史中调用。
替代 REPL
为克服标准解释器的上述局限,基于 Python 交互模型构建的多种增强型 REPL 与环境提供了更多有助于提升效率与学习的功能。建议尝试以下任一工具,找到适合您需求的。
- IDLE:一个随 Python 自带的简洁图形界面环境,提供语法高亮、集成编辑器与调试器,对初学者友好。
- IPython:功能强大的 REPL,具备丰富的 Tab 补全、语法高亮、魔术命令(以 % 开头的特殊命令)、广泛的历史记录,以及便捷的 Shell 命令访问。广泛用于数据科学和科学计算。
- bpython:基于终端的 REPL,提供内联语法高亮、自动建议和快捷文档访问。轻量却相较默认 REPL 有显著可用性提升。
- ptpython:面向有经验用户的高级 REPL,提供真正的多行编辑、强大的语法高亮,甚至支持鼠标操作,让您在终端中拥有更强控制力。
- 在线 REPL:基于浏览器的环境,如 Python.org 的交互式 Shell 和 Python Morsels REPL,非常适合快速测试、分享代码或随时随地练习。
结论
Python REPL 会话为代码实验提供了快速、交互的环境,对于测试、学习与探索想法极为有用。熟练掌握其内置功能,能够为您的日常编程任务提供强大的助力。对于更复杂的工作流或更高的可用性,尝试高级 REPL 替代方案可以进一步提升交互式编码体验。
若要系统掌握 Python,您可以继续学习我们的Python Data Fundamentals和Python Programming Fundamentals技能路径。Python 初学者备忘单也很实用,当您想快速查阅如如何在 Python 中拆分列表等内容时可随手参考。

数据科学技术写作者,具备数据分析、商业智能和数据科学的一线实践经验。我撰写以行业为导向的实用内容,涵盖 SQL、Python、Power BI、Databricks 和数据工程,并以真实的分析工作为基础。我的写作兼顾技术深度与业务影响,帮助专业人士将数据转化为自信的决策。
FAQs
如何启动 Python REPL?
打开终端,输入 python 或 python3(取决于您的系统)。
如何退出 REPL?
输入 quit() 或 exit(),或在 Unix 上使用 Ctrl+D,在 Windows 上使用 Ctrl+Z + Enter。
REPL 与运行脚本有何区别?
REPL 逐行交互运行代码,而脚本会一次性执行文件中的全部代码。
REPL 中的 _ 变量是什么?
_ 保存上一个求值表达式的结果,便于快速复用。
提示符 >>> 和 ... 分别表示什么?
>>> 是主提示符,... 是用于多行输入的次级提示符。
与必须在执行前被编译为机器码的 C++ 或 Java 等编程语言不同,Python 是解释型语言,会直接运行指令。这使得 REPL 环境非常适合做实验,无论您是在测试代码片段、探索新概念,还是逐行调试。它的优势在于每个 Python 安装都自带 REPL,随时可用。
在本教程中,我将通过示例演示如何使用 Python REPL 环境,探索其功能,并介绍可提升工作流程的替代 REPL。如果您刚开始学习 Python,建议参加我们的Introduction to Python课程,内容涵盖数据类型、列表、基础函数和包等技能。
什么是 Python REPL?
REPL 是 Read-Eval-Print Loop(读取-求值-输出-循环)的缩写,描述了其四个基本阶段:
这些阶段持续协同工作,创建了一个交互式环境,您可以输入代码并即时查看输出。Python 的 REPL 使用主提示符
>>>来表示输入新语句,使用次级提示符...表示续行输入,例如在循环或函数定义内部。接下来的示例将展示这些提示符如何工作。“交互式 Shell”“解释器会话”和“REPL”这几个术语经常可互换使用来描述该环境。
为什么要使用 Python REPL
您可以使用 Python REPL 完成以下任务:
快速测试代码片段和库函数:无需创建脚本文件即可立即尝试小段代码。
探索语法并实验想法:将 REPL 环境视为您的个人沙盒。您可以尝试新事物,例如不同的数据类型、运算符和控制流结构,零风险观察其行为,而不会影响更大的程序。
调试并检查变量:您可以使用 REPL 会话逐步检查变量的值和状态,更易于理解并排查问题。
用作计算器或学习工具:即时结果让它非常适合进行计算或学习 Python 基础。
如何启动和退出 REPL 会话
要启动 Python REPL 会话,请打开终端或命令提示符。然后输入
python或python3并按 Enter,即可启动交互式 Shell。