原始碼 (source code) 檔案就是我們寫程式 (program) 所用的 .py 檔案,原始碼檔案經過直譯器 (interpreter) 直接逐行執行,無須額外編譯 (compile) 成執行檔。
↓
interpreting
我們看到以下單元 1 的範例 demo.py
o = object()
# 於命令列印出訊息
print()
print(o)
print(".. 以上是 object 型態物件的字串形式")
print()
print("程式結束 ....")
print()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:demo.py
# 功能:示範簡單的 Python 程式
# 作者:張凱慶 */
由於 Python 是直譯 (interpret) 的程式語言 (programming language) ,直接在命令列打直譯器指令 python 加空格接檔名 demo.py 便可執行,如下
$ python demo.py |
<object object at 0x108072060> |
.. 以上是 object 型態物件的字串形式 |
程式結束 .... |
$ |
安裝 Python 請參考如何安裝 Python,至於命令路徑設定請參考如何設定 MS-Windows 系統的 Python 的命令列路徑。
上面用的指令為 python ,這是以建立模擬環境的方式執行 Python 直譯器,因此可以直接使用指令 python ,如果系統已經預先安裝 Python 2 ,指令就直接是 python ,後來安裝 Python 3 之後的版本,指令需要改用 python3 或 python3.6 。建立 Python 模擬環境的方式請參考如何建立 Python 的模擬環境。
Python 程式檔案依習慣都是儲存為 UTF-8 編碼,若儲存的不是 UTF-8 編碼,就需要額外加上編碼宣告。
所謂直譯係指程式從上而下,一行接著一行的逐行被執行,如果程式中有語法錯誤 (syntax error) ,直譯器就會暫停執行,並且印出錯誤訊息,例如我們將第 6 行結尾漏掉右邊的小括弧
print(".. 以上是 object 型態物件的字串形式"
執行時會直接停止,並且印出錯誤訊息
$ python demo.py |
File "demo.py", line 7 |
print() |
^ |
SyntaxError: invalid syntax |
$ |
這是說解析到第 7 行的時候,發現有語法錯誤,錯誤實際在第 6 行,因此停止執行程式。
因為這程式很簡單,所以 Python 直接檢查完語法才執行,如果程式複雜點,就會先檢查一部分可執行先執行,遇到錯誤才停止執行。
是的,我們是把程式寫在 .py 檔案之中,其實 Python 還有個互動式介面,這在命令列打入 python 指令就可啟動
$ python |
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 05:52:31) |
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin |
Type "help", "copyright", "credits" or "license" for more information. |
>>> |
如果要離開 Python 的互動式介面,請輸入指令 exit() 或 quit() 。
在 MS-Windows 中,如果想要點兩下 Python 檔案圖示就執行 Python 程式,請參考在 MS-Windows 快速點兩下執行 Python 程式。
互動式介面可以當簡單的計算機,或是可以拿來測試某段小程式,許多網路教材也都是顯示互動介面的結果為主。可是我們不打算使用這個介面,原因很單純,因為如果我們要發展一個完整的軟體 (software) ,在這樣的互動介面下,一行指令一個結果是難以完成的,即使先帶讀者使用互動介面,將來也勢必切換回寫程式到 .py 檔案之中。
所以我們直接帶讀者寫副檔名為 .py 的 Python 程式。第一個 demo.py 相當簡單,連續使用 print() 印出訊息,只有使用字串 (string) 一種資料型態 (data type) 的字面常數 (literal) ,其實 Python 還有很多種資料型態,另外除了字面常數也有變數 (variable) ,下面我們繼續來看看資料型態與變數吧!
中英文術語對照 | |
---|---|
編譯 | compile |
資料型態 | data type |
直譯 | interpret |
直譯器 | interpreter |
字面常數 | literal |
程式 | program |
程式語言 | programming language |
軟體 | software |
原始碼 | source code |
字串 | string |
語法錯誤 | syntax error |
變數 | variable |
重點整理 |
---|
1. 於命令列執行 Python 程式的指令為 python3 或 python ,端視系統是否有先安裝 Python 的舊版本。 |
2. Python 是直譯的程式語言,執行方式為依原始程式檔案,從上而下,一行接著一行執行。 |
3. 執行 Python 程式若遇到語法錯誤,便會停止執行並且印出錯誤訊息。 |
4. Python 直譯器也有提供互動式介面,可於互動式介面直接測試語法或小程式。 |
問題與討論 |
---|
1. 直譯與編譯的差別在哪裡?直譯的程式語言相較編譯的程式語言有什麼優點及缺點? |
2. 語法錯誤是程式錯誤的其中一大類,程式還有哪幾種可能會發生的錯誤呢? |
3. 互動式介面有什麼優缺點呢?除了命令列之外, Python 通常也有提供 IDLE ,也就是圖形視窗的互動式介面,比較一下互動式介面與直接執行 .py 檔案的差異。 |
練習 |
---|
1. 將 demo.py 的內容逐一輸入在互動式介面,比較直接執行與在互動式介面執行的結果有何不同? |
2. 於命令列執行「單元 1」練習的 demo2.py ,比較與 demo.py 的執行結果有何不同? |
相關教學影片