簡體   English   中英

Microsoft Visual Code 中的差異“運行 python 文件”和“終端中的運行行”

[英]Difference 'run python file' & 'run lines in terminal' in Microsoft Visual Code

我剛剛開始了一個 python 訓練營,並且正在使用 Microsoft Visual Studio Code(Python 3.10.5 的最新版本),但有幾個問題。 (為長篇道歉)

我有以下代碼:

def weather_condition(temperature):
    if temperature > 7:
        return "Warm"
    else:
        return "Cold"

input("What temperature: ")

據我所知,運行代碼有三個選項

  1. 鼠標右鍵單擊並'在終端中運行python文件
  2. 選擇行並按 SHIFT + ENTER
  3. 運行(帶或不帶調試)

然而,即使腳本相同,每個選項在終端中都會顯示完全不同的結果。

  1. 如果我選擇運行 python 文件,它會在終端中顯示以下錯誤:

終端錯誤信息

>>> & C:/Users/..../AppData/Local/Microsoft/WindowsApps/python3.10.exe d:/..../_SCRIPTING_/Python/Python001/user_input2.py
  File "<stdin>", line 1
    & C:/Users/fine/AppData/Local/Microsoft/WindowsApps/python3.10.exe d:/..../_SCRIPTING_/Python/Python001/user_input2.py
    ^
SyntaxError: invalid syntax
  1. 如果我選擇選擇行(與 #1 使用的行相同),

選定的行

它運行腳本,但它在終端中顯示整個腳本運行過程(這不會發生在教師的可視化代碼中:

礦:

 >>> def weather_condition(temperature):
 ...     if temperature > 7:
 ...             return "Warm"
 ...     else:
 ...             return "Cold"
 ...
 >>> input("What temperature: ")
 What temperature: 

老師:老師的屏幕

  1. 最后但並非最不重要的是運行腳本(帶或不帶調試)。

調試運行

這會打開一個全新的 Python“調試”終端。 這里腳本運行正常(看起來)並且看起來更像老師的版本,盡管他的屏幕沒有顯示“調試”或小工具欄

小工具欄

在他的視覺代碼中的任何地方。

A. 那么每個選擇之間有什么區別?

B. 我應該使用 3 個中的哪一個?

C. 為什么第一個選項即使腳本編寫正確也會出錯?

您提到的三個選項都是 VSCode 特有的,但您說得對,它們旨在為您提供運行腳本的不同方式。

要回答您的問題:

A. 那么每個選擇之間有什么區別?

第一個選項嘗試在 VSCode 的終端中啟動 Python,運行如下命令:

& "C:/Program Files/Python310/python.exe" c:/project/hello.py

您看到的錯誤消息是因為在您的終端中,Python 已經在運行,而 VSCode 只是將上面的內容復制並粘貼到終端中,期望它出現在等待的終端提示符上,而不是 Python 交互式提示符上。 如果您先運行exit()以關閉 Python 並返回終端提示符,然后再試一次,它將起作用。

該命令的含義是在終端的當前工作目錄中,在終端的當前環境中啟動該版本的 Python,運行您的腳本。 (在后台,將控制權返回給您,因此&

第二個選項執行類似的操作,但不是發出上面的命令,而是將您選擇的所有內容放在剪貼板上並將其粘貼到終端中。 如果碰巧在交互式提示下運行 Python,並且所選文本實際上是 Python 代碼,那么您的腳本可能會工作(取決於代碼以及之前運行的內容)。 如果它位於終端提示符上,則不會因為 Windows、Linux 或 Mac OS 在沒有解釋器的情況下無法理解 Python。

第三個選項與第一個選項非常相似,但不是將簡單的運行命令轉儲到終端中,而是添加了更多命令,更改驅動器和目錄,然后嘗試啟動腳本。 盡管如此,它仍然會嘗試使用活動終端,如果 Python 碰巧已經在那里運行,它將失敗(就像第一個選項一樣)。

因此,第 1 次和第 3 次非常相似,但與第 2 次完全不同,后者試圖粘貼 Python 代碼而不是終端命令。

B. 我應該使用 3 個中的哪一個?

取決於你需要什么。 如果你有幾行代碼只是想看看效果,你可以使用第二種方法,假設這些代碼行可以在你之前運行的上下文中工作。

如果你只是想運行一個腳本,這取決於它需要在哪里運行。 VSCode 為您提供了更多選項來設置環境以使腳本成功運行,但它並沒有像 PyCharm 那樣為您提供更多的控制權(再說一次,它也比 PyCharm 更小更快啟動並且有更少令人困惑的復雜控件 - 這是品味和需求的問題)。

C. 為什么第一個選項即使腳本編寫正確也會出錯?

如上所述,它僅在終端運行交互式 Python 會話時才會生成該錯誤(您可以從>>>提示符中看出)。 如果您在該設置中嘗試,第三個會給您類似的錯誤。

同樣,如果您沒有啟動交互式會話(即運行一些python.exe ),第二個選項將導致問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM