教程:在 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 交互窗口

按照以下步骤打开 交互式窗口 并开始使用代码:

  1. 使用以下方法之一打开适用于 Python 的 交互式窗口

    • 解决方案资源管理器中,右键单击项目节点并选择 打开交互式窗口
    • 解决方案资源管理器中,在项目的 Python 环境 节点下,右键单击项目的 Python 环境,然后选择 打开交互式窗口。 Python 环境的示例是 Python 3.11(64 位)。
    • 在工具栏上,选择 视图>其他窗口>Python 交互式窗口,或使用键盘快捷键 Alt+I

    Visual Studio 将在编辑器窗口下打开 Python 的 交互式窗口。 该窗口具有标准 >>> Python REPL 提示符:

    显示 Visual Studio 中代码编辑器下方打开的用于 Python 的交互式窗口的屏幕截图。

  2. 交互窗口中,可以使用 环境 下拉列表选择要处理的特定 Python 解释器:

    显示如何从 Visual Studio 交互窗口中的“环境”下拉列表中选择 Python 解释器的屏幕截图。

  3. 可以通过在窗口和代码编辑器之间移动分隔符,使 交互式窗口 更大:

    显示如何移动分隔符以增加 Visual Studio 中交互式窗口的大小的屏幕截图。

    提示

    可以通过在窗口和周围窗口之间移动分隔符来调整 Visual Studio 中的任何窗口的大小。 还可以将窗口移出 Visual Studio 框架,并在框架内重新排列窗口。

  4. 交互式窗口中,输入 print("Hello, Visual Studio") 等语句和 123/456等计算表达式。 Visual Studio 显示代码的即时结果:

    显示交互式窗口如何显示 Visual Studio 中输入的代码的即时结果的屏幕截图。

  5. 接下来,输入多行语句,如以下示例所示的函数定义。

    输入代码时,交互窗口 显示 Python 延续提示(...)。 与命令行 REPL 体验不同,“交互式窗口”在输入代码时会自动缩进:

    这张屏幕截图展示了在 Visual Studio 中,交互式窗口显示多行代码语句的 Python 续行提示。

    若要在代码中添加新行,请选择 Shift+Enter

  6. 使用 向上 键或 向下 键滚动浏览到目前为止输入的命令列表。

    交互式窗口 提供了输入的所有内容的完整历史记录,并通过支持多行历史记录项改进了命令行 REPL 体验。 可以将函数的整个定义快速召回为单个单元,并更改函数名称或调整其他语句。 这种方法比逐行重新创建函数更为简单。

重复使用和修改现有代码

Visual Studio 提供了在 交互式窗口中使用现有 Python 代码的不同方法,例如复制和粘贴,以及访问前面所述输入的代码。 另一种方法是从编辑器窗口将多行代码发送到 交互窗口。 此功能允许你维护源文件中的代码,并轻松地将所选片段发送到 交互式窗口。 然后,可以在快速 REPL 环境中处理代码片段,而无需运行整个程序。

通过完成以下步骤来试用这些功能:

  1. 在编辑器中打开 Python 项目文件(.py)。 (教程步骤 2 介绍如何创建此文件,其中默认文件名为 PythonApplication1.py.)

  2. 将文件中的 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'
    
  3. 右键单击文件中的 import 语句,然后选择“发送到交互式 ”(或键盘快捷方式 Ctrl+E)。 对 from 语句重复此过程。

    显示如何在 Visual Studio 中将导入和从语句的代码发送到交互式窗口的屏幕截图。

    选择“发送到交互式 ”命令 时,所选代码片段将立即粘贴到 交互窗口 并运行。 在这种情况下,Visual Studio 从 cos 库以及 radians 库导入 mathsys 例程。

  4. make_dot_string 函数再次重复此过程。 请务必发送函数的两行代码。 发送函数的完整代码后,在 交互窗口中输入一个新行。

    由于此代码定义了函数,因此可以通过多次调用函数来快速测试函数,如以下示例所示:

    显示如何在 Visual Studio 中运行发送到交互式窗口的函数代码的测试的屏幕截图。

    提示

    可以使用键盘快捷方式 Ctrl+Enter交互窗口中运行当前代码行。 代码运行后,插入点提示移动到下一行。 反复选择 Ctrl+Enter 可方便地单步执行代码,这在 Python 命令行中无法做到。 还可以使用此方法在不运行调试器的情况下逐步执行代码,而无需从头开始启动程序。

  5. 请再次尝试此过程,但这次从任何来源复制多行代码并粘贴到交互窗口中。 可以使用以下代码片段:

    for i in range(360):
        s = make_dot_string(i)
        print(s)
    

    在 Python 命令行 REPL 体验中很难执行多行粘贴操作。 粘贴代码后,交互式窗口 运行代码,就像直接在窗口中输入代码一样:

    显示如何将多行代码粘贴到 Visual Studio 的交互式窗口中的屏幕截图。

    当前代码有效,但输出并不鼓舞人心。 for 循环中的不同步骤值可以显示更多的余弦波。 for 循环的代码以单个单元的形式在 REPL 历史记录中提供。 你可以找到代码并进行任何所需的更改,然后再次测试该函数。

  6. 使用向上箭头键可滚动浏览命令历史记录,然后在 for 循环代码处停止。

  7. 使用 向左 键或 向右 键进入 for 循环语句的代码。 到达一行的开头时,选择向左箭头键移动到上一行的末尾。

  8. for 循环语句中,转到 range 定义并将语句更改为 range(0, 360, 12)

  9. 选择 Ctrl+,以再次运行函数:

    显示如何在 Visual Studio 的交互式窗口中编辑上一条语句的屏幕截图。

  10. 重复此过程以试验不同的步骤设置,直到找到喜欢的值。 还可以通过延长范围(例如,range(0, 1800, 12))使波重复。

复制代码和程序输出

Visual Studio 允许复制在 交互式窗口中编写的任何代码,以及运行代码的任何输出。

按照以下步骤将代码从 交互窗口 复制到编辑器:

  1. 交互式窗口中,选择要复制的代码。

  2. 右键单击所选代码并选择 复制代码 或使用键盘快捷方式 Ctrl+Shift+C

    显示 Visual Studio 中包括提示和输出的选择的交互式窗口复制代码命令的屏幕截图。

  3. 将复制的代码粘贴到编辑器中。 Visual Studio 的此特殊功能会自动省略任何输出,以及所选内容中的 >>>... 提示。

    当你粘贴到编辑器时,只会得到代码。

    for i in range(0, 1800, 12):
        s = make_dot_string(i)
        print(s)
    
  4. 若要复制 交互式窗口的确切内容(包括提示和任何程序输出),请使用标准 复制 命令。

在这些步骤中,你使用了 交互式窗口 的快速 REPL 环境来找出一小段 Python 代码的详细信息,并方便地将代码添加到项目的源文件中。 使用 Ctrl+F5 重新运行代码,或者使用 调试>启动而不调试时,您会看到您想要的确切结果。

下一步