Python 入門指南 5.0

單元 2 - 如何執行 Python 程式

~~學習進度表~~

原始碼 (source code) 檔案就是我們寫程式 (program) 所用的 .py 檔案,原始碼檔案經過直譯器 (interpreter) 直接逐行執行,無須額外編譯 (compile) 成執行檔,這種方式就叫做直譯 (interpret)

source code → interpreter
                 ↓
              interpreting

我們看到以下單元 1 的範例 demo.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
o = object()

# 於命令列印出訊息
print()
print(o)
print(".. 以上是 object 型態物件的字串形式")
print()
print("程式結束 ....")
print()

# 檔名: demo.py
# 說明:《Python入門指南》的範例程式
# 網站: http://kaiching.org
# 作者: 張凱慶
# 時間: 2023 年 5 月

Python 程式檔案依習慣都是儲存為 UTF-8 編碼,若儲存的不是 UTF-8 編碼,就需要額外加上編碼宣告。

以下利用 python 指令在命令列執行 demo.py

$ python demo.py
 
<object object at 0x104a48180>
.. 以上是 object 型態物件的字串形式
程式結束 ....
 
$

上面用的指令為 python ,這是以建立模擬環境的方式執行 Python 直譯器,因此可以直接使用指令 python ,如果系統已經預先安裝 Python 2 ,指令就直接是 python ,後來安裝 Python 3 之後的版本,指令需要改用 python3python3.xx 為版本號。

如果是直接安裝 Python 3 的最新版本,就不會有新舊版本並存的問題,此時的執行指令 python 就是執行 Python 3 的最新版本。

如果用安裝 Python 直譯器隨附的 IDLE 執行 demo.py ,結果如下

其他推薦給新手的 Python IDE 為 Thonny , Thonny 中除了可開啟路徑視窗、一鍵執行外,還有額外的英文協助功能,以下為 Thonny 執行的結果

基本上執行程式的首選是命令列,因為命令列是直接跟電腦作業系統互動,而 Thonny 或其他 IDE 比較像是另外建立的模擬環境,雖說模擬環境並不會破壞本來的系統設置,但由於是模擬的,模擬環境不出錯不等於在作業系統中不出錯,因此有可能會有系統跟模擬環境不一致的情況。

所謂直譯係指程式從上而下,一行接著一行的逐行被執行,如果程式中有語法錯誤 (syntax error) ,直譯器就會暫停執行,並且印出錯誤訊息,例如我們將第 6 行結尾漏掉右邊的小括弧

 6
print(".. 以上是 object 型態物件的字串形式"

執行時會直接停止,並且印出錯誤訊息

$ python demo.py
  File "demo.py", line 7
    print()
        ^
SyntaxError: invalid syntax
$

這是說解析到第 7 行的時候,發現有語法錯誤,錯誤實際在第 6 行,因此停止執行程式。

因為這程式很簡單,所以 Python 直接檢查完語法才執行,如果程式複雜點,就會先檢查一部分可執行先執行,遇到錯誤才停止執行。

是的,我們是把程式寫在 .py 檔案之中,其實 Python 還有個互動式介面,這在命令列打入 python 指令就可啟動

$ python
Python 3.11.3 (v3.11.3:f3909b8bc8, Apr 4 2023, 20:12:10) [Clang 13.0.0 (clang-1300.0.29.30)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

如果要離開 Python 的互動式介面,請輸入指令 exit()quit()

互動式介面可以當簡單的計算機,或是可以拿來測試某段小程式,許多網路教材也都是顯示互動介面的結果為主。可是我們不打算使用這個介面,原因很單純,因為如果我們要發展一個完整的軟體 (software) ,在這樣的互動介面下,一行指令一個結果是難以完成的,即使先帶讀者使用互動介面,將來也勢必切換回寫程式到 .py 檔案之中。

所以我們直接帶讀者寫副檔名為 .py 的 Python 程式。第一個 demo.py 相當簡單,連續使用 print() 印出訊息,只有使用字串 (string) 一種資料型態 (data type) 的字面常數 (literal) ,其實 Python 還有很多種資料型態,另外除了字面常數也有變數 (variable) ,下面我們繼續來看看資料型態與變數吧!

中英文術語對照
編譯compile
資料型態data type
直譯interpret
直譯器interpreter
字面常數literal
程式program
軟體software
原始碼source code
字串string
語法錯誤syntax error
變數variable
重點整理
1. 於命令列執行 Python 程式的指令為 python3python ,端視系統是否有先安裝 Python 的舊版本。
2. Python 是直譯的程式語言,執行方式為依原始程式檔案,從上而下,一行接著一行執行。
3. 執行 Python 程式若遇到語法錯誤,便會停止執行並且印出錯誤訊息。
4. Python 直譯器也有提供互動式介面,可於互動式介面直接測試語法或小程式。
問題與討論
1. 直譯與編譯的差別在哪裡?直譯的程式語言相較編譯的程式語言有什麼優點及缺點?
2. 語法錯誤是程式錯誤的其中一大類,程式還有哪幾種可能會發生的錯誤呢?
3. 互動式介面有什麼優缺點呢?除了命令列之外, Python 通常也有提供 IDLE ,也就是圖形視窗的互動式介面,比較一下互動式介面與直接執行 .py 檔案的差異。
練習
1. 將 demo.py 的內容逐一輸入在互動式介面,比較直接執行與在互動式介面執行的結果有何不同?
2. 於命令列執行「單元 1」練習的 exercise0101.py ,比較與 demo.py 的執行結果有何不同?
3. 同上,改成執行「單元 1」練習的 exercise0102.py
4. 同上,改成執行「單元 1」練習的 exercise0103.py
5. 同上,改成執行「單元 1」練習的 exercise0104.py
6. 同上,改成執行「單元 1」練習的 exercise0105.py
7. 同上,改成執行「單元 1」練習的 exercise0106.py
8. 同上,改成執行「單元 1」練習的 exercise0107.py
9. 同上,改成執行「單元 1」練習的 exercise0108.py
10. 同上,改成執行「單元 1」練習的 exercise0109.py

上一頁 單元 1 - 認識 Python 語言
回 Python 入門指南 5.0 首頁
下一頁 單元 3 - 資料型態與變數
回 Python 教材首頁
回程式語言教材首頁