安裝了 VS Code 以後,我們如何正式開始編程?
今天我們來寫一個非常簡單的 Python 小程式,來學習一下 Visual Studio Code 裡的基本版面,以預備我們最終在 VS Code 完成一個完整的 Python 網上應用吧!
第 1 步:開啟新的檔案夾、設定虛擬環境
由於我們在上一篇已詳細講解這部分,如果您未使用過虛擬環境或不知道如何設定,請先到這裡:VSCode 2/4: 設定虛擬環境(Virtual Env), 管理 Python 專案!
這裡我們假設您已跟上一篇教學開啟名為「vscode-example」的檔案夾,並設立了 .venv 作為您的虛擬環境。
當您按一下 Command + Shift + P 時並選擇「Python: Create Terminal」,應該會見到如下:
第 2 步:開啟新的 .py 檔案
我們到視窗左上方選擇以下有個「加號」的按鈕,開啟新的檔案。
隨後,我們在下面開啟的新檔案輸入「main.py」作為檔案名稱。這是我們的第一個 Python 代碼檔。
在右邊的視窗的「main.py」輸入以下的代碼,並按一下 Command + S 儲存檔案。
print('Hello, world!')
第 3 步:在 Python Terminal 運行 main.py
在下面的 Python Terminal 輸入以下指令並按 Return 。
python main.py
您應該會如上圖的橘色的框框見到「Hello, world!」。恭喜您,我們已運行最基本的 Python 程式!
在稍微複雜一點的 Python 專案裡,我們經常會使用多個 .py 的檔案來管理我們的編程。例如在網絡應用上,每一個 .py 代表一個頁面等。
有多個 .py 檔案時,我們應該如何設計它們的互動?在 VS code 裡我們如何管理這些 .py 檔案?
第 4 步:使用多個 .py 檔案管理專案
接下來我們重施故技,添加一個名為「script1.py」的檔案。在 script.py 輸入以下 Python 代碼並按一下 Command + S:
def writeMessage(message): print('Message received:', message) return writeMessage('This is called from script1.py')
然後在 Python Terminal 輸入以下指令,並按一下 Return:
python script1.py
這裡我們加入一個輔助性的 Python 功能,名為 writeMessage()
,待會我們會在 main.py 上使用到。我們在管理 Python 專案時,會把一些經常使用到的功能抽出來並放進另一個 .py 檔案裡,簡化主檔案(即 main.py)。
從 main.py 匯入並使用 writeMessage()
我們回到 main.py,輸入以下 Python 代碼後按一下 Command + S:
import script1 script1.writeMessage('This is called from main.py')
然後在 Python Terminal 輸入以下指令,並按一下 Return:
python main.py
留意在開端的 import script1
就是要求 Python 在我們的 root directory(即「vscode-example」的檔案夾)裡尋在名為 script1.py 的檔案,並匯入裡面的 Python 功能。
匯入了 script1.py 後,我們便可以在 main.py 直接使用在 script1.py 的 writeMessage()
功能了!
可是,為什麼在輸出裡(上圖橘色)會同時出現「This is called from script1.py」和「This is called from main.py」呢?以下我們來解釋和解決這個問題。
在 .py 使用 if __name__ == ‘__main__’
以上的問題出自 script1.py 的寫法。由於我們為了示範 writeMessage()
的功能,在 script1.py 的第 5 行加入了 writeMessage("This is called from script1.py")
,導致在 main.py 呼叫 import script1
時順勢把這行也執行了。
那麼我們如何既保留 script1.py 裡的示範用途,又避免在 main.py 呼叫時在 Terminal 導出「This is called from script1.py」?
我們先把 script1.py 的第 5 至 6 行改成以下的代碼:
if __name__ == '__main__': writeMessage('This is called from script1.py')
然後在 Python Terminal 逐一輸入以下指令,並按一下 Return:
python script1.py python main.py
留意這次我們執行 script1.py (上圖的「2」)時,仍會出現「This is called from script1.py」的字句讓我們測試 writeMessage()
的功能,但執行 main.py (上圖的「3」)時只會出現「This is called from main.py」。
答案就是神奇的 if __name__ == '__main__':
這一句咒語了!
if __name__ == '__main__'
確保這個 if-block 裡的代碼只會在 Python 直接執行該 .py 檔案時,才會運作。否則在 Python 從其他 .py 呼叫時,便不會執行這個 if-block 裡的代碼。
這對於我們寫出測試代碼(test script)有很大的幫助。
結語
希望您透過這篇教學,能基本操作 Visual Studio Code 的介面,並寫出您的第一個 Python 小程式吧!萬勿錯過接下來更精彩的 VS Code 教學啊!
其他有關 VS Code 的文章: