教程:在 Visual Studio 中使用交互式 REPL 窗口
本文介绍本教程系列中的步骤 3 在 Visual Studio中使用 Python。
Visual Studio 交互式开发环境(IDE)提供了支持不同开发任务的各种窗口。 本教程中的 步骤 1 和 步骤 2 介绍了如何在 解决方案资源管理器中管理文件 和使用代码编辑器中的文件内容。 在步骤 3 中,将 Visual Studio Interactive Window for Python 用于丰富的读取-评估-打印循环(REPL)体验,极大地缩短了通常的编辑-生成-调试周期。 通过在适用于 Python 的 交互式窗口 中工作,可以获得 Python 命令行 REPL 体验的所有功能。 通过该窗口还可以轻松地与 Visual Studio 编辑器中的源文件交换代码,免去了使用命令行时的繁琐操作。
在本教程的步骤 3 中,你将了解如何:
- 访问适用于 Python 的交互式窗口并设置 Python 解释器
- 在窗口中输入并运行代码,并滚动命令历史记录
- 插入来自其他源的现有代码或代码
- 从交互式窗口复制代码和程序输出
先决条件
包含 Python 文件(.py)的 Python 应用程序项目,其中包含在 步骤 2 中创建的代码:编写并运行 Python 代码。
为了最好地支持 REPL 体验,请安装
ipython
和ipykernel
包。 有关详细信息,请参阅 Python 环境包选项卡。
打开 Python 交互窗口
按照以下步骤打开 交互式窗口 并开始使用代码:
使用以下方法之一打开适用于 Python 的 交互式窗口:
- 在 解决方案资源管理器中,右键单击项目节点并选择 打开交互式窗口。
- 在 解决方案资源管理器中,在项目的 Python 环境 节点下,右键单击项目的 Python 环境,然后选择 打开交互式窗口。 (Python 环境的示例是 Python 3.11(64 位)。
- 在工具栏上,选择 视图>其他窗口>Python 交互式窗口,或使用键盘快捷键 Alt+I。
Visual Studio 将在编辑器窗口下打开 Python 的 交互式窗口。 该窗口具有标准 >>> Python REPL 提示符:
在 交互窗口中,可以使用 环境 下拉列表选择要处理的特定 Python 解释器:
可以通过在窗口和代码编辑器之间移动分隔符,使 交互式窗口 更大:
提示
可以通过在窗口和周围窗口之间移动分隔符来调整 Visual Studio 中的任何窗口的大小。 还可以将窗口移出 Visual Studio 框架,并在框架内重新排列窗口。
在 交互式窗口中,输入
print("Hello, Visual Studio")
等语句和123/456
等计算表达式。 Visual Studio 显示代码的即时结果:接下来,输入多行语句,如以下示例所示的函数定义。
输入代码时,交互窗口 显示 Python 延续提示(...)。 与命令行 REPL 体验不同,“交互式窗口”在输入代码时会自动缩进:
若要在代码中添加新行,请选择 Shift+Enter。
使用 向上/向下 箭头键滚动浏览到目前为止输入的命令列表。
交互式窗口 提供了输入的所有内容的完整历史记录,并通过支持多行历史记录项改进了命令行 REPL 体验。 可以将函数的整个定义快速召回为单个单元,并更改函数名称或调整其他语句。 这种方法比逐行重新创建函数更为简单。
重复使用和修改现有代码
Visual Studio 提供了在 交互式窗口中使用现有 Python 代码的不同方法,例如复制和粘贴,以及访问前面所述输入的代码。 另一种方法是从编辑器窗口将多行代码发送到 交互窗口。 此功能允许你维护源文件中的代码,并轻松地将所选片段发送到 交互式窗口。 然后,可以在快速 REPL 环境中处理代码片段,而无需运行整个程序。
通过完成以下步骤来试用这些功能:
在编辑器中打开 Python 项目文件(.py)。 (教程步骤 2 介绍如何创建此文件,其中默认文件名为 PythonApplication1.py.)
将文件中的
for
循环语句替换为以下代码:# Create a string with spaces proportional to a cosine of x in degrees def make_dot_string(x): return ' ' * int(20 * cos(radians(x)) + 20) + 'o'
右键单击文件中的
import
语句,然后选择“发送到交互式 ”(或键盘快捷方式 Ctrl+E)。 对from
语句重复此过程。选择“发送到交互式 ”命令 时,所选代码片段将立即粘贴到 交互窗口 并运行。 在这种情况下,Visual Studio 从
math
库以及sys
库导入cos
和radians
例程。为
make_dot_string
函数再次重复此过程。 请务必发送函数的两行代码。 发送函数的完整代码后,在 交互窗口中输入一个新行。由于此代码定义了函数,因此可以通过多次调用函数来快速测试函数,如以下示例所示:
提示
可以使用键盘快捷方式 Ctrl+Enter 在 交互窗口中运行当前代码行。 代码运行后,插入点提示移动到下一行。 反复选择 Ctrl+Enter 可方便地单步执行代码,这在 Python 命令行中无法做到。 还可以使用此方法在不运行调试器的情况下逐步执行代码,而无需从头开始启动程序。
请再次尝试此过程,但这次从任何来源复制多行代码并粘贴到交互窗口中。 可以使用以下代码片段:
for i in range(360): s = make_dot_string(i) print(s)
在 Python 命令行 REPL 体验中很难执行多行粘贴操作。 粘贴代码后,交互式窗口 运行代码,就像直接在窗口中输入代码一样:
当前代码有效,但输出并不鼓舞人心。
for
循环中的不同步骤值可以显示更多的余弦波。for
循环的代码以单个单元的形式在 REPL 历史记录中提供。 你可以找到代码并进行任何所需的更改,然后再次测试该函数。使用向上箭头键可滚动浏览命令历史记录,然后在
for
循环代码处停止。使用 向左/向右 箭头键移动到
for
循环语句的代码中。 到达一行的开头时,选择向左箭头键移动到上一行的末尾。在
for
循环语句中,转到range
定义并将语句更改为range(0, 360, 12)
。选择 Ctrl+在
for
循环语句内任意位置输入,以再次运行函数:重复此过程以试验不同的步骤设置,直到找到喜欢的值。 还可以通过延长范围(例如,
range(0, 1800, 12)
)使波重复。
复制代码和程序输出
Visual Studio 允许复制在 交互式窗口中编写的任何代码,以及运行代码的任何输出。
按照以下步骤将代码从 交互窗口 复制到编辑器:
在 交互式窗口中,选择要复制的代码。
右键单击所选代码并选择 复制代码 或使用键盘快捷方式 Ctrl+Shift+C。
将复制的代码粘贴到编辑器中。 Visual Studio 的此特殊功能会自动省略任何输出,以及所选内容中的
>>>
和...
提示。当你粘贴到编辑器时,只会得到代码。
for i in range(0, 1800, 12): s = make_dot_string(i) print(s)
若要复制 交互式窗口(包括提示和任何程序输出)的确切内容,请使用标准 复制 命令。
在这些步骤中,你使用了 交互式窗口 的快速 REPL 环境来找出一小段 Python 代码的详细信息,并方便地将代码添加到项目的源文件中。 使用 Ctrl+F5 重新运行代码,或者使用 调试>启动而不调试时,您会看到您想要的确切结果。