選擇結構為依條件 (condition) 讓程式分流執行,如下圖

條件為真,程式執行分流 A ,條件為假,程式執行分流 B ,這便是典型的選擇結構之例。
Python 中提供的選擇結構如下表
| 選擇結構 | 簡述 |
|---|---|
| if | 如果條件為真才執行 |
| if-else | 如果條件為真執行某某,否則執行某某 |
| if-elif | 多重條件選擇 |
| if-elif-else | 多重條件選擇,並可設定預設執行選項 |
最簡單的為 if 陳述 (if statement) ,如下例
a = 22
b = 34
if a > b:
print("Good luck!")
if a != b:
print("Have a nice day!")
# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:cf01.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2010 年 12 月 執行結果如下

if 陳述在出現在第 4 行及第 7 行。 if 為 Python 的關鍵字 (keyword) 之一,緊接在 if 後頭到冒號之間的運算式 (expression) 即為條件,運算式的結果為若非 True ,即為 False 。條件為 True ,隨後縮排 (indentation) 的程式區塊 (block) 就會被執行,反之,若運算式的結果為 False ,程式就會跳過大括弧的程式區塊,尋找區塊後的程式繼續執行。
True 即是邏輯上的真, False 為邏輯上的假。
此例中,第 4 行
if a > b:
由於 a > b 的條件為假,所以 Good luck! 的英文字串 (string) 不會被列印出來,而第 7 行
if a != b:
a != b 的條件為真,所以程式會印出 Have a nice day! 的英文字串。
重複結構是讓程式重複執行某些工作,如下圖

當有工作需要重複執行時,重複的條件為真,此工作就重複執行一次,執行完畢再行測試條件,條件為真,繼續重複執行此工作,直到條件為假時,結束工作的執行。依此執行的方式為重複結構,也被稱為迴圈 (loop) 。
因此,具有重複結構的程式通常需要下列三項基本任務
| 1. 控制變數初始設定 |
| 2. 迴圈結束條件測試 |
| 3. 調整控制變數的值 |
Python 中提供的重複結構如下表
| 重複結構 | 簡述 |
|---|---|
| for-in | 通常用於取得複合資料型態元素的迴圈 |
| while | 前測試迴圈 |
常見的 for 迴圈 (for loop) ,用於取得複合資料型態 (compound data type) 元素 (element) ,如下例
a = "0123456789"
for i in a:
print(i)
# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:cf02.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2010 年 12 月 執行結果如下

for 為 Python 的關鍵字之一,後面緊接一個取得元素的變數,此例中用 i ,然後接另一個關鍵字 in ,其後就是複合資料型態的資料,最後接冒號,底下縮排就是迴圈所要重複的工作。這一行用中文來解釋,就是從 a 中取出元素放到 i 裡,迴圈直接取得複合資料型態的元素,若是沒有元素,迴圈自動結束。
| 中英文術語對照 | |
|---|---|
| 控制結構 | control structure |
| 循序 | sequence |
| 選擇 | selection |
| 重複 | repetition |
| if 陳述 | if statement |
| 關鍵字 | keyword |
| 運算式 | expression |
| 縮排 | indentation |
| 區塊 | block |
| 字串 | string |
| 迴圈 | loop |
| for 迴圈 | for loop |
| 複合資料型態 | compound data type |
| 元素 | element |
參考資料
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
1 則留言:
反之,若運算式的結果為 False ,程式就會跳過大括弧的程式區塊,尋找區塊後的程式繼續執行。
Python的程式區塊應該都是縮排沒有大括弧吧?大家都是其他語言用習慣了一時改不過來XD
張貼留言