教程:在 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 中将导入与 from 语句的代码发送到交互式窗口。

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

  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+for 循环语句内任意位置输入,以再次运行函数:

    显示如何在 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 重新运行代码,或者使用 调试>启动而不调试时,您会看到您想要的确切结果。

下一步