Python 入門指南

單元 1 - 認識 Python 語言

~~學習進度表~~

使用 Python 語言寫程式,最簡單的方式就是開啟文字編輯器 (text editor) ,然後將原始程式碼 (source code) 逐字元 (character) 一個一個打進文字編輯器中,然後依純文字檔案的編碼儲存檔案 (file) , Python 程式的原始碼檔案採用 .py 的副檔名

.py

以下是用 Mac 系統的「文字編輯」輸入第一個範例 demo.py

也可以利用具有語法高亮度顯示的文字編輯器,或是整合開發環境 (Integrated Development Environment, IDE) ,如下圖為 Mac 系統的 Xcode

大多數專門寫程式的文字編輯器都支援 Python 的語法高亮度,至於整合開發環境可參考官網提供的比較。

或是參考本書的語法高亮度顯示,此範例程式 demo.py 如下

o = object()

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

#《程式語言教學誌》的範例程式
# https://kaiching.org/
# 檔名:demo.py
# 功能:示範簡單的 Python 程式
# 作者:張凱慶 */

如果不知道有哪些文字編輯器或整合開發環境,請參考寫 Python 程式的工具利用 Visual Studio Code 寫 Python 程式

先看到淺灰色標記的幾個字

object() print()

兩個都是 Python 的內建函數 (function) 之一, object() 回傳最基本的 object 物件 (object)print() 則用來將參數 (parameter) 字串 (string) 顯示在命令列上,舊版的 Python 直譯器 (interpreter) 把 print關鍵字 (keyword) 使用,所謂的關鍵字是語法功能的保留字 (reserved word) ,具有既定特殊的用法。

這裡講的 Python 舊版為 2.x ,我們使用的是 3.6 以後的 Python 版本。

至於函數也是具有既定功能的用法,這裡的 print() 就是將字串印在命令列上。其實就功能而言,列印的動作用關鍵字函數並沒有太大的分別,若就 Python 設計的哲學來講,關鍵字的數量應該盡可能精簡,並且以語法意義為主,因此這樣的輸出工作交給函數會比較適當。

本書用栗色標記關鍵字,例如

None if for return try

簡單的程式例如 demo.py 並沒有用到關鍵字關鍵字除了常數外大都跟邏輯判斷有關,例如上面的 if 便是用於選擇結構。

另外井字號開頭的幾行

# 於命令列印出訊息
# 檔名: demo.py 

井字號開頭則是 Python 單行註解 (comment) 的方式,屬於 Perl 風格的註解樣式。所謂的註解就是在程式中輔助說明的文字,凡是註解文字都不屬於會被程式執行的部份,因此可用自然語言替程式說明,無須恪守 Python 的語法規則。

雙引號圍起來的內容則是藍色

".. 以上是 object 型態物件的字串形式"
"程式結束 ...."

這是字串字面常數 (string literal) ,所謂的字串就是文字資料,其為雙引號或單引號圍起來內容,可以是任何輸入字元或文字。

其他識別字 (identifier)運算子 (operator) 都採黑色

a b o sum + = < >

這個範例很簡單,印出一些訊息到命令列。我們逐行來看看 demo.py 進行的工作,首先,第 1 行為建立 object 型態的物件 o

o = object()

由於 Python 是物件導向程式語言 (object-oriented programming language) ,某種程度來說使用 Python 寫程式就是使用物件跟設計物件,好加在 Python 已經內建一個內如豐富的程式庫 (library) ,很多時候我們都只需要直接利用程式庫中的物件即可。

object 為 Python 中最基本的物件,其實 Python 中所有東西都是物件,藉由內建函數 object() ,變數 (variable) o 就會得到 object 型態 (type) 的物件。這裡的等號 =指派運算子 (assignment operator) ,用來將等號右邊的值 (value) 傳遞給等號左邊的變數。

下面連續呼叫 6 次 print()

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

若沒有提供參數print() ,預設印出 "\n" ,這是新行字元,表示到這裡就斷行的意思。這裡

print(o)

o參數,就會印出物件 o字串形式。

字串也是物件,底下雙引號圍起來的字元就是字串的常數形式

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

因此這個程式會先印出一個空白行,然後 o字串形式,然後字串訊息,然後空白行,然後另一個字串訊息,最後也是個空白行。

程式很簡單,接下來,我們繼續來看看如何執行囉!

中英文術語對照
整合開發環境Integrated Development Environment, IDE
指派運算子assignment operator
字元character
註解comment
檔案file
函數function
識別字identifier
直譯器interpreter
關鍵字keyword
程式庫library
物件object
物件導向程式語言object-oriented programming language
運算子operator
參數parameter
保留字reserved word
原始程式碼source code
字串string
字串字面常數string literal
文字編輯器text editor
型態type
變數variable
value
重點整理
1. 寫程式可以用文字編輯器或整合開發環境。
2. Python 有大量可以直接運用的內建函數、內建物件等等,也具備豐富的程式庫。
3. Python 用井字號 # 替程式註解,註解是程式碼說明的部份,不會被直譯器所執行。
4. 字串字面常數為雙引號或單引號圍起來的內容。
5. Python 是物件導向程式設計的程式語言,裡頭所有的東西都是物件。
6. 指派運算子為單一個等號 = ,用來將等號右邊的值傳遞給左邊的變數。
問題與討論
1. 可以用 Word 寫程式嗎?有什麼不方便的地方呢?
2. 程式語言除了直譯式的 Python 外,還有編譯式的程式語言,這種程式語言在執行前需要先將原始程式碼編譯成執行檔,請將直譯式與編譯式的程式語言各舉五種出來。
3. 識別字就是變數嗎?兩者有什麼不同呢?
4. 想想看應該替程式碼提供哪些註解?什麼地方需要?什麼地方又不需要?
5. 物件導向程式語言除了 Python 還有其他的嗎? C 語言是嗎? Java 是嗎? Fortran 呢?
6. 物件是程式設計的中文術語,英文原文為 object ,其實 object 就是一般中文「東西」的意思,想一想平常我們是怎麼運用「東西」的,「東西」的概念如何移植到程式設計的物件中?
練習
1. 將上述範例的內容逐字元打到文字編輯器裡,然後將檔名存成 demo.py
2. 刪除 demo.py 中所有單行註解,並將檔名存成 demo2.py

上一頁 基礎學習篇
回 Python 入門指南首頁
下一頁 單元 2 - 如何執行 Python 程式
回 Python 教材首頁
回程式語言教材首頁