步驟 3:使用互動式 REPL 視窗

上一個步驟:撰寫並執行程式碼

適用於 Python 的 Visual Studio 互動式視窗提供一個豐富的「讀取、求值、輸出」迴圈 (REPL) 體驗,可大幅縮短一般「編輯-建置-偵錯」循環。 互動式視窗提供 Python 命令列的 REPL 體驗的所有功能。 它也讓在 Visual Studio 編輯器中與原始程式檔交換程式碼變得簡單,而使用命令列來執行此作業則會十分麻煩。

注意

針對 REPL 的問題,請務必安裝 ipythonipykernel 套件,而如需安裝套件的說明,則請參閱 Python 環境套件索引標籤

  1. 方案總管中以滑鼠右鍵按一下專案的 Python 環境 (例如稍早圖形中顯示的 [Python 3.6 (32 位元)]),然後選取 [開啟互動式視窗],以開啟互動式視窗。 另一個方式是,從 Visual Studio 主功能表選取 [檢視]> [其他視窗]> [Python 互動式視窗]

  2. 互動式視窗會在編輯器下方隨著標準 >>> Python REPL 提示開啟。 [環境] 下拉式清單可讓您選取要使用的特定解譯器。 如果您想要讓互動式視窗變大,您可以拖曳兩個視窗之間的分隔符號,如下圖所示:

    Python interactive window and dragging to resize

    提示

    您可以拖曳框線分隔符號,以調整 Visual Studio 中所有視窗的大小。 您也可以單獨將視窗拖出 Visual Studio 框架,不過,您也可以在框架內排列視窗。 如需完整詳細資料,請參閱自訂視窗版面配置

  3. 輸入幾個陳述式 (例如 print("Hello, Visual Studio")) 和運算式 (例如 123/456) 查看立即結果:

    Python interactive window immediate results

  4. 當您開始撰寫多行陳述式 (例如函式定義) 時,互動式視窗會顯示 Python ... 提示,表示繼續執行程式碼行。 不同於命令列 REPL,這會提供自動縮排。 您可以按 Shift+Enter 來新增 ... 行:

    Python interactive window with statement continuation

  5. 互動式視窗提供您所輸入之所有資料的完整歷程記錄,並改善包含多行歷程記錄項目的命令列 REPL。 例如,您可以輕鬆地重新呼叫 f 函式的整個定義作為單一單位,並輕鬆地將名稱變更為 make_double,而非逐行重新建立函式。

  6. Visual Studio 可以將多行程式碼從編輯器視窗傳送至互動式視窗。 此功能可讓您維護來源檔案中的程式碼,並輕鬆地將其選取片段傳送至互動式視窗。 您接著可以在快速 REPL 環境中使用這類程式碼片段,而不需要執行整個程式。 若要查看此功能,請先將 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'
    
  7. 選取 .py 檔案中的 importfrommake_dot_string 函式陳述式。 以滑鼠右鍵按一下選取的文字,然後選擇 [傳送至互動式] (或按 Ctrl+Enter)。 程式碼片段會立即貼入至互動式視窗並執行。 因為程式碼已定義函式,您可以呼叫該函式數次以快速測試它:

    Sending code to the interactive window and testing it

    提示

    在編輯器中使用 Ctrl+Enter 但「未」選取任何項目,會在互動式視窗中執行目前程式碼行,並自動將插入號放入下一行。 使用此功能,重複按 Ctrl+Enter 可提供便利的方式,來逐步執行無法只使用 Python 命令列執行的程式碼。 它也可讓您逐步執行程式碼,而不需要執行偵錯工具,也不需要從頭開始啟動您的程式。

  8. 您也可以從任何來源 (例如下面的程式碼片段) 複製多行程式碼,並將其貼入互動式視窗,但這可能很難使用 Python 命令列 REPL 處理。 貼上時,互動式視窗會執行該程式碼,就像您輸入它一樣:

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

    Pasting multiple lines of code using Sending Interactive

  9. 如您所見,此程式碼會正常運作,但其輸出不盡如人意。 for 迴圈中的不同步驟值會顯示更多的餘弦波。 REPL 歷程記錄以單一單位形式提供整個 for 迴圈。 您可以返回並進行任何您想要的變更,然後再次測試函式。 按向上鍵,先回復 for 迴圈。 您可以按向左鍵或向右鍵在程式碼中巡覽 (在您這麼做之前,向上鍵或向下鍵可繼續循環瀏覽歷程記錄)。 巡覽至 range 規格,並將其變更為 range(0, 360, 12)。 然後在程式碼中的任何位置按 Ctrl+Enter 以重新執行整個陳述式:

    Editing a previous statement in the interactive window

  10. 重複此處理序來試驗不同的步驟設定,直到您找到最喜歡的值。 您也可以延長範圍 (例如,range(0, 1800, 12)) 來重複波浪。

  11. 滿意您在互動式視窗中撰寫的程式碼時,請選取它。 接下來,以滑鼠右鍵按一下程式碼,然後選擇 [複製程式碼] (Ctrl+Shift+C)。 最後,將選取的程式碼貼到編輯器中。 注意此 Visual Studio 特殊功能如何自動省略任何輸出以及 >>>... 提示。 例如,下圖顯示如何對包含提示和輸出的選取範圍使用 [複製程式碼] 命令:

    Interactive window copy code command on a selection with prompts and output

    當您貼入編輯器時,只會取得程式碼:

    for i in range(0, 1800, 12):
        s = make_dot_string(i)
        print(s)
    

    如果您想要複製互動式視窗的確切內容 (包含提示和輸出),請需要使用標準 [複製] 命令。

  12. 您完成的作業是使用互動式視窗的快速 REPL 環境了解一小部分程式碼的詳細資料,然後您可以方便地將該程式碼新增至專案的原始程式檔。 當您現在使用 Ctrl+F5 (或 [偵錯]>[開始但不偵錯]) 再次執行程式碼時,就會看到您想要的確切結果。

後續步驟

深入了解