目錄
    Add a header to begin generating the table of contents

    VSCode 3/5: 實戰篇!版面介紹、管理 Python 專案和多個 .py

    VS Code 3/5: 實戰篇!版面介紹、管理 Python 專案和多個 .py
    Share on facebook
    Share on twitter
    Share on linkedin
    Share on whatsapp
    目錄
      Add a header to begin generating the table of contents

      安裝了 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」,應該會見到如下:

      我是廣告 ^o^

      第 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 程式!

      我是廣告 ^o^

      在稍微複雜一點的 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)。

      我是廣告 ^o^

      從 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」呢?以下我們來解釋和解決這個問題。

      我是廣告 ^o^

      在 .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」。

      我是廣告 ^o^

      答案就是神奇的 if __name__ == '__main__': 這一句咒語了!

      if __name__ == '__main__' 確保這個 if-block 裡的代碼只會在 Python 直接執行該 .py 檔案時,才會運作。否則在 Python 從其他 .py 呼叫時,便不會執行這個 if-block 裡的代碼。

      這對於我們寫出測試代碼(test script)有很大的幫助。

      結語

      希望您透過這篇教學,能基本操作 Visual Studio Code 的介面,並寫出您的第一個 Python 小程式吧!萬勿錯過接下來更精彩的 VS Code 教學啊!

      其他有關 VS Code 的文章:

      我是廣告 ^o^

      人氣文章

      快讓我學更多

      small_c_popup.png
      想學習 Python 嗎?
      快來訂閱我們的電子報!