Python 入門指南 - 選擇

程式中的選擇 (selection) 就是依條件 (condition) 使程式有不同的執行方向,若條件為真,也就是 True ,程式就會跳過 False 的部份執行 True 的部份,反之亦然




選擇結構有單一選擇跟多重選擇,兩者都使用 if 陳述 (if statement) , if 為關鍵字 (keyword) 之一,若是多重選擇 if 須與 elifelse 連用。單一選擇,也就是單獨使用 if 陳述如下
if 3 > 5: 
    print("Oh! 3 is bigger than 5!")


條件為 if 後面到冒號的範圍,上例為 3 大於 5 ,如果 3 大於 5 為真,程式就會執行條件後縮排的程式區塊 (block) ,其範圍一直到沒有縮排為止,這裡就可以看到 Python 裡頭縮排的意義。如果 3 大於 5 為假,程式自然跳過條件後的程式區塊,去找區塊後的第一個陳述 (statement) 執行。


ifelse 連用,條件為真,執行 if 後的程式區塊,條件為假,就執行 else 後的程式區塊
if 3 > 5: 
    print("Oh! 3 is bigger than 5!")
else: 
    print("Not Bad! 3 is not bigger than 5!")


elif 表示其他的條件,形成 if-elif-else 的多重選擇,最後的 else 表示以上皆非
if 3 > 5: 
    print("Oh! 3 is bigger than 5!")
elif 4 > 5:
    print("Oh! 4 is bigger than 5!")
elif 5 > 5:
    print("Oh! 5 is bigger than 5!")
elif 6 > 5:
    print("Of course, 6 is bigger than 5!")
else:
    print("There is no case :(")


我們將以上寫成完整的範例程式,如下
print()
if 3 > 5: 
    print("Oh! 3 is bigger than 5!")
elif 4 > 5:
    print("Oh! 4 is bigger than 5!")
elif 5 > 5:
    print("Oh! 5 is bigger than 5!")
elif 6 > 5:
    print("Of course, 6 is bigger than 5!")
else:
    print("There is no case :(")
print()

# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:selection.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2012 年 12 月 


執行結果如下



另舉一例如下
print()
s = 6
if s == 3: 
    print("3...")
elif s == 4:
    print("4...")
elif s == 5:
    print("5...")
elif s == 6:
    print("6...")
else:
    print("There is no case :(")
print()

# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:selection2.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2012 年 12 月 


這裡的條件為判斷某一變數 (variable) 是否符合某一常數 (constant) ,執行結果如下



複合陳述 (compound statement) 除了選擇結構 (selection structure) 還有重複結構 (repetition structure) ,重複結構也被稱為迴圈 (loop) ,接下來我們就來看看如何使用迴圈吧!


中英文術語對照
選擇selection
條件condition
if 陳述if statement
關鍵字keyword
程式區塊block
陳述statement
常數constant
變數variable
複合陳述compound statement
選擇結構selection structure
重複結構repetition structure
迴圈loop


您可以繼續參考
基礎篇


相關目錄
回 Python 入門指南
回 Python 教材
回首頁


參考資料
http://docs.python.org/3.1/tutorial/controlflow.html
http://docs.python.org/3.1/reference/lexical_analysis.html
http://docs.python.org/3.1/reference/simple_stmts.html
http://docs.python.org/3.1/reference/compound_stmts.html

沒有留言: