我們先看到下面這張圖
原始碼 (source code) 檔案就是我們寫程式 (program) 所用的 .py 檔案,原始碼檔案經過直譯器 (interpreter) 直接逐行執行,無須額外編譯 (compile) 成執行檔。
我們提供的簡單範例的程式原始碼如下
001 | o = object() |
002 | |
003 | # 於命令列印出訊息 |
004 | print() |
005 | print(o) |
006 | print(".. is object's string format") |
007 | print() |
008 | print("Program terminates ....") |
009 | print() |
010 | |
011 | # 檔名: demo.py |
012 | # 作者: Kaiching Chang |
013 | # 時間: July, 2014 |
由於 Python 是直譯 (interpret) 的程式語言 (programming language) ,直接在命令列打直譯器指令 python3 加空格接檔名 demo.py 便可執行,如下
我們用的指令為 python3 ,這是因為系統還有 Python 之前的版本,如果是第一次安裝 Python ,就可直接使用 python 當指令。
Python 程式檔案依習慣都是儲存為 UTF-8 編碼,若儲存的不是 UTF-8 編碼,就需要額外加上編碼宣告。
所謂直譯係指程式從上而下,一行接著一行的逐行被執行,如果程式中有語法錯誤 (syntax error) ,直譯器就會暫停執行,並且印出錯誤訊息,例如我們將第 8 行結尾漏掉右邊的小括弧
008 | print("Program terminates ...." |
執行時會直接停止,並且印出錯誤訊息
這是說解析到第 9 行的時候,發現有語法錯誤,錯誤實際在第 8 行,因此停止執行程式。
因為這程式很簡單,所以 Python 直接檢查完語法才執行,如果程式複雜點,就會先檢查一部分可執行先執行,遇到錯誤才停止執行。
是的,我們是把程式寫在 .py 檔案之中,其實 Python 還有個互動式介面,這在命令列打入 python3 或 python 指令就可啟動
互動式介面可以當簡單的計算機,或是可以拿來測試某段小程式,許多網路教材也都是顯示互動介面的結果為主。可是我們不打算使用這個介面,原因很單純,因為如果我們要發展一個完整的軟體 (software) ,在這樣的互動介面下,一行指令一個結果是難以完成的,即使先帶讀者使用互動介面,將來也勢必切換回寫程式到 .py 檔案之中。
所以我們直接帶讀者寫副檔名為 .py 的 Python 程式。第一個 demo.py 相當簡單,連續使用 print() 印出訊息,只有使用字串 (string) 一種資料型態 (data type) 的字面常數 (literal) ,其實 Python 還有很多種資料型態,另外除了字面常數也有變數 (variable) ,下面我們繼續來看看資料型態與變數吧!
中英文術語對照
原始碼 | source code |
程式 | program |
直譯器 | interpreter |
編譯 | compile |
直譯 | interpret |
程式語言 | programming language |
語法錯誤 | syntax error |
軟體 | software |
字串 | string |
資料型態 | data type |
字面常數 | literal |
變數 | variable |
重點整理
- 於命令列執行 Python 程式的指令為 python3 或 python ,端視系統是否有先安裝 Python 的舊版本。
- Python 是直譯的程式語言,執行方式為依原始程式檔案,從上而下,一行接著一行執行。
- 執行 Python 程式若遇到語法錯誤,便會停止執行並且印出錯誤訊息。
- Python 直譯器也有提供互動式介面,可於互動式介面直接測試語法或小程式。
問題與討論
- 直譯與編譯的差別在哪裡?直譯的程式語言相較編譯的程式語言有什麼優點及缺點?
- 語法錯誤是程式錯誤的其中一大類,程式還有哪幾種可能會發生的錯誤呢?
- 互動式介面有什麼優缺點呢?除了命令列之外, Python 通常也有提供 IDLE ,也就是圖形視窗的互動式介面,比較一下互動式介面與直接執行 .py 檔案的差異。
練習
- 將 demo.py 的內容逐一輸入在互動式介面,比較直接執行與在互動式介面執行的結果有何不同?
- 於命令列執行「單元 1」練習的 demo2.py ,比較與 demo.py 的執行結果有何不同?
the end
沒有留言:
張貼留言