本站電子書

您可以在這些電子書店找到本站電子書: Google Play 圖書iBooks StoreHyReadReadmooPubu
===>>>本站推出學習遊戲意見調查<<<===《如何自學程式設計》入選 Google Play 台灣地區2016年度最佳書籍

Python 入門指南 V2.00 - 單元 2 - 如何執行 Python 程式




我們先看到下面這張圖



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


我們提供的簡單範例的程式原始碼如下


001o = object()
002
003# 於命令列印出訊息
004print()
005print(o)
006print(".. is object's string format")
007print()
008print("Program terminates ....")
009print()
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 行結尾漏掉右邊的小括弧


008print("Program terminates ...."

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



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


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

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



互動式介面可以當簡單的計算機,或是可以拿來測試某段小程式,許多網路教材也都是顯示互動介面的結果為主。可是我們不打算使用這個介面,原因很單純,因為如果我們要發展一個完整的軟體 (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

重點整理


  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 的執行結果有何不同?

the end

沒有留言: