Python 入門指南 5.0

單元 1 - 認識 Python 語言

~~學習進度表~~

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

.py

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

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

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

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
o = object()

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

# 檔名: demo.py
# 說明:《Python入門指南》的範例程式
# 網站: http://kaiching.org
# 作者: 張凱慶
# 時間: 2023 年 5 月

本書採用開放原始碼的 Pygments 專案刻語法高亮度為 Xcode 風格,再做調整符合本書需求, Pygments 專案的官網為 https://pygments.org/

先看到草綠色標記的幾個字

 1
 5
o = object()
print(o)

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

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

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

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

  
None if for return try

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

另外井字號開頭的幾行

 3
11
12
13
14
15
# 於命令列印出訊息
# 檔名: demo.py
# 說明:《Python入門指南》的範例程式
# 網站: http://kaiching.org
# 作者: 張凱慶
# 時間: 2023 年 5 月

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

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

 6
 8
print(".. 以上是 object 型態物件的字串形式")
print("程式結束 ...."

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

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

  
a b o sum + = < >

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

 1
o = object()

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

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

下面連續呼叫 6 次 print()

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

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

 5
print(o)

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

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

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

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

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

中英文術語對照
整合開發環境Integrated Development Environment, IDE
指派運算子assignment operator
字元character
註解comment
檔案file
函數function
識別字identifier
直譯器interpreter
關鍵字keyword
程式庫library
字面常數literal
物件object
物件導向程式語言object-oriented programming language
運算子operator
參數parameter
保留字reserved word
原始程式碼source code
字串string
文字編輯器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 中所有單行註解,並將檔名存成 exercuse0101.py參考程式碼
3. 承上題,刪除 o = object()o = object() 兩行程式碼,並將檔名存成 exercuse0102.py參考程式碼
4. 承上題,將第一個印出字串改成 "There is no spoon." ,第二個印出字串改成 "Free your mind." ,並將檔名存成 exercuse0103.py參考程式碼
5. 承上題,自行設定兩個印出字串內容,並將檔名存成 exercuse0104.py參考程式碼
6. 承上題,內建函數 input() 可以在命令列接收使用者輸入,回傳為字串,將兩個印出字串改成使用者輸入的 s1s2 ,並將檔名存成 exercuse0105.py參考程式碼
7. 承上題, input() 的小括弧中可以放一個字串參數,這個字串參數是使用者輸入前的提示文字,將兩個 input() 加入字串參數,並在 print() 中加入顯示是哪一個輸入字串,並將檔名存成 exercuse0106.py參考程式碼
8. 承上題,重新替程式加入適當註解,並將檔名存成 exercuse0107.py參考程式碼
9. 承上題, print() 函數可以增加 end 參數, end 用來設定印出結尾符號,預設是斷行字元 '\n' ,這裡改成自訂的字串,例如 ", " ,並將檔名存成 exercuse0108.py參考程式碼
10. 承上題, print() 函數可以用逗號增加印出字串,另外可以用 sep 參數設定印出字串的間隔符號,這裡將 s1s2 放在同一個 print() 印出,然後利用 sep 設定間隔字串,例如 ", " ,並將檔名存成 exercuse0109.py參考程式碼

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