Python 程式在電腦上的執行流程

更新於 發佈於 閱讀時間約 7 分鐘

Python 程式在電腦上的執行流程

當我們在電腦上執行 Python 程式時,主要經歷以下幾個步驟:

1. 編寫 Python 程式碼

開發者使用文字編輯器或 IDE(如 VS Code、PyCharm)撰寫 Python 程式,並將其存為 .py 檔案。

例如,一個簡單的 Python 程式可能如下:

print("Hello, Python!")

這只是程式碼的起點,Python 需要經過一系列處理後才能執行它。


2. 解析 (Parsing) 與 語法檢查 (Syntax Checking)

Python 直譯器(Interpreter)首先會讀取 .py 檔案,進行詞法分析 (Lexical Analysis)語法解析 (Parsing),確保程式碼符合語法規則。

例如,如果語法錯誤,如漏掉括號,Python 會在此階段報錯。

範例錯誤:

print("Hello, Python!"  # 缺少關閉括號

Python 會回傳:

SyntaxError: unexpected EOF while parsing

3. 轉換為位元組碼 (Bytecode Compilation)

如果 Python 解析成功,下一步 Python 直譯器會將程式轉換成位元組碼 (Bytecode),這是一種中間格式,主要目的是讓 Python 程式執行更有效率。

這個 .pyc 檔案通常會存放在 __pycache__ 目錄中。

範例:

main.py  ->  __pycache__/main.cpython-<version>.pyc

這個 .pyc 檔案包含了 Python 虛擬機器 (PVM) 可執行的指令。


4. 執行位元組碼 (透過 Python 虛擬機, PVM)

Python 直譯器內建的 Python 虛擬機器 (Python Virtual Machine, PVM) 負責執行位元組碼。PVM 會逐條解釋 .pyc 的指令,並執行相應的操作。

這部分類似 Java 虛擬機 (JVM),可以理解為 Python 內部的一個執行環境,讓程式碼能在不同平台(Windows、macOS、Linux)上運行,而不需要重新編譯。


5. 與作業系統互動

最終,PVM 執行 Python 程式時,會與作業系統進行溝通,例如:

  • 檔案存取:讀取/寫入 .txt.csv 檔案。
  • 記憶體管理:Python 內部的垃圾回收機制會管理變數與物件的記憶體釋放。
  • 網路存取:像是 requests 套件可以用來存取 API。
  • 硬體控制:例如 GPIO 控制樹莓派 (Raspberry Pi) 的感測器。

Python 程式執行流程圖

+-----------------------+
| 1. 撰寫 Python 程式 |
| (編輯器: VS Code) |
+-----------------------+


+-----------------------+
| 2. 解析 & 語法檢查 |
| (Syntax Checking) |
+-----------------------+


+-----------------------+
| 3. 轉換為位元組碼 |
| (Bytecode: .pyc) |
+-----------------------+


+-----------------------+
| 4. PVM 執行位元組碼 |
| (Python 虛擬機) |
+-----------------------+


+-----------------------+
| 5. 與作業系統互動 |
| (檔案 / 記憶體 / 網路) |
+-----------------------+

補充:為什麼 Python 是直譯式語言?

Python 雖然會先轉換為位元組碼 (Bytecode),但它並不像 C++ 或 Java 那樣預先編譯為機器碼 (Machine Code)。

而是透過 Python 虛擬機 (PVM) 逐行解釋並執行,因此 Python 屬於直譯式語言 (Interpreted Language)

優點:

✔ 跨平台執行,Windows、macOS、Linux 都可運行✔ 可即時執行,不需要額外的編譯步驟

缺點:

❌ 執行速度較 C/C++ 稍慢(但可透過 Cython 或 JIT 加速)

raw-image



Python 虛擬機 (PVM) 的角色

當 Python 直譯器將 .py 檔案轉換為位元組碼 (.pyc),這些 Bytecode 不能直接在 CPU 上執行,而是需要 Python 虛擬機來解釋並執行。

PVM 主要有以下功能:

  1. 載入 (Loading)
    • PVM 會將 .pyc 位元組碼載入到記憶體中,準備執行。
  2. 解譯 (Interpreting)
    • PVM 會逐行讀取 Bytecode,並將其轉換為對應的機器指令。
    • 這與 C/C++ 的編譯型語言不同,Python 是直譯式語言,因此 PVM 會一行一行執行,而不是一次性編譯成機器碼。
  3. 執行 (Execution)
    • PVM 根據指令執行對應的操作,例如:變數賦值 (x = 5)函式呼叫 (print("Hello"))迴圈與條件判斷 (if, for, while)記憶體管理(透過 Garbage Collector 自動回收未使用的記憶體)
  4. 錯誤處理 (Exception Handling)
    • 若程式執行過程中發生錯誤(如 ZeroDivisionError),PVM 會產生 例外(Exception) 並根據程式的錯誤處理機制決定如何處理。
  5. 與作業系統互動
    • PVM 會向作業系統請求資源,例如:讀寫檔案網路請求多執行緒處理
    • 這是透過 Python 的標準函式庫(如 os, socket, threading)完成的。


安裝 Python 直譯器時,大多數開發者使用的就是 CPython


留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
148會員
255內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2024/10/17
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
2024/10/17
在一個典型的程式專案中,UI、Controller 和 Main 的分工通常遵循 MVC 模型(Model-View-Controller) 的架構,這是一種常見的設計模式,能夠將應用程式的邏輯和界面進行分離。 大部分典型的程式專案設計: UI (View):專注於用戶界面,展示數據,並將用
Thumbnail
2024/09/17
生成器本身是一種只能輸出數據的結構,它不像列表或其他容器可以存儲數據並操作。它是一種(lazy evaluation)輸出數據的結構,生成器僅在需要時生成數據。因此,它對於處理大數據集或無限序列時非常高效。 然而,生成器與列表或其他容器不同的一個特點是,生成器通常只能輸出數據,但在某些情況下,我們
Thumbnail
2024/09/17
生成器本身是一種只能輸出數據的結構,它不像列表或其他容器可以存儲數據並操作。它是一種(lazy evaluation)輸出數據的結構,生成器僅在需要時生成數據。因此,它對於處理大數據集或無限序列時非常高效。 然而,生成器與列表或其他容器不同的一個特點是,生成器通常只能輸出數據,但在某些情況下,我們
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
本篇以詳細步驟並搭配圖片,帶你安裝Visual Studio Code、Python建置環境,完成後就能開始Python語言編輯。
Thumbnail
本篇以詳細步驟並搭配圖片,帶你安裝Visual Studio Code、Python建置環境,完成後就能開始Python語言編輯。
Thumbnail
這篇指南提供逐步教學,引導您在Visual Studio Code中設定Python開發環境,包括安裝Python和VS Code、安裝Python擴充套件、設定Python直譯器以及撰寫和執行第一個Python程式,讓Python新手也能輕鬆上手。
Thumbnail
這篇指南提供逐步教學,引導您在Visual Studio Code中設定Python開發環境,包括安裝Python和VS Code、安裝Python擴充套件、設定Python直譯器以及撰寫和執行第一個Python程式,讓Python新手也能輕鬆上手。
Thumbnail
這篇文章提供了一個詳細的指南,教你如何在你的電腦上下載和設置Python開發環境,尤其是使用VScode編輯器。從Python的下載與安裝到VScode的設置,這裡還涵蓋了安裝中文語言包的步驟,讓你的編程環境更加友好。
Thumbnail
這篇文章提供了一個詳細的指南,教你如何在你的電腦上下載和設置Python開發環境,尤其是使用VScode編輯器。從Python的下載與安裝到VScode的設置,這裡還涵蓋了安裝中文語言包的步驟,讓你的編程環境更加友好。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
這只是我把學習python的過程記錄下來,不一定適合所有人
Thumbnail
這只是我把學習python的過程記錄下來,不一定適合所有人
Thumbnail
  最近開始真正學習Python這門語言,這邊就將我所學的筆記記錄在這邊,我起初用這們語言時覺得很雜很混亂都在胡亂使用,聽說python很多東西沒有筆記就會很雜很混亂腦容量要非常非常大,但我自知腦袋記憶體不足,所以現在有了比較完整的概念我就邊學邊筆記,有需要的也可以一起學習哦!我學習到哪就分享到哪裡
Thumbnail
  最近開始真正學習Python這門語言,這邊就將我所學的筆記記錄在這邊,我起初用這們語言時覺得很雜很混亂都在胡亂使用,聽說python很多東西沒有筆記就會很雜很混亂腦容量要非常非常大,但我自知腦袋記憶體不足,所以現在有了比較完整的概念我就邊學邊筆記,有需要的也可以一起學習哦!我學習到哪就分享到哪裡
Thumbnail
Python 是目前主流的程式語言之一,不論是網路上亦或是各大書局。都有豐富的學習資源,如果你是程式語言的初學者,那以 python 作為入坑的第一步來解決不論是生活/工作上的大小事都是非常適合的一個'工具'。 接下來介紹如何安裝python,以及我自己一直都在使用的IDE(整合開發環境)。
Thumbnail
Python 是目前主流的程式語言之一,不論是網路上亦或是各大書局。都有豐富的學習資源,如果你是程式語言的初學者,那以 python 作為入坑的第一步來解決不論是生活/工作上的大小事都是非常適合的一個'工具'。 接下來介紹如何安裝python,以及我自己一直都在使用的IDE(整合開發環境)。
Thumbnail
不間斷 Python 挑戰 Day 1 - 開發環境
Thumbnail
不間斷 Python 挑戰 Day 1 - 開發環境
Thumbnail
該篇文章首要為 1.下載python與文字編輯器vs code (Visual Studio Code) 2.撰寫第一支python程式
Thumbnail
該篇文章首要為 1.下載python與文字編輯器vs code (Visual Studio Code) 2.撰寫第一支python程式
Thumbnail
PYTHON 介紹 Python 是一種被廣泛使用的高階編程語言,它的用途十分廣泛,支援了多種的程式設計的範式,包括函數式、指令式、結構化、物件導向。 Python的設計哲學強調了它簡潔的語法,是使用空格縮進來劃分程式碼。 Python是的社群中擁有許多模組可以使用,在進行某些用途時可以很引入模組,
Thumbnail
PYTHON 介紹 Python 是一種被廣泛使用的高階編程語言,它的用途十分廣泛,支援了多種的程式設計的範式,包括函數式、指令式、結構化、物件導向。 Python的設計哲學強調了它簡潔的語法,是使用空格縮進來劃分程式碼。 Python是的社群中擁有許多模組可以使用,在進行某些用途時可以很引入模組,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News