Python 入門指南

單元 2 - 如何執行 Python 程式

~~學習進度表~~

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

source code → interpreter
                 ↓
              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 之後的版本,指令需要改用 python3python3.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 程式的指令為 python3python ,端視系統是否有先安裝 Python 的舊版本。
2. Python 是直譯的程式語言,執行方式為依原始程式檔案,從上而下,一行接著一行執行。
3. 執行 Python 程式若遇到語法錯誤,便會停止執行並且印出錯誤訊息。
4. Python 直譯器也有提供互動式介面,可於互動式介面直接測試語法或小程式。
問題與討論
1. 直譯與編譯的差別在哪裡?直譯的程式語言相較編譯的程式語言有什麼優點及缺點?
2. 語法錯誤是程式錯誤的其中一大類,程式還有哪幾種可能會發生的錯誤呢?
3. 互動式介面有什麼優缺點呢?除了命令列之外, Python 通常也有提供 IDLE ,也就是圖形視窗的互動式介面,比較一下互動式介面與直接執行 .py 檔案的差異。
練習
1. 將 demo.py 的內容逐一輸入在互動式介面,比較直接執行與在互動式介面執行的結果有何不同?
2. 於命令列執行「單元 1」練習的 demo2.py ,比較與 demo.py 的執行結果有何不同?

相關教學影片

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