前言:
對應學習一個新的程式語言的開始(上),裡面的五個要素之控制單元,也就是python的條件函數 if 。
python 還有另一種控制,與重複執行有關,這樣的控制稱迴圈函數,也就是python裡的for 、while,這個留到下一章來看,這裡我們只單獨看 if 如何使用。
閱讀時間:5 分鐘
學習if之前,先了解python的區塊
區塊是什麼?
可以將區塊想像成工作空間,當進入一個新的區塊,就表示程式到了一個新的空間裡工作。
這張圖片為例子,來解釋成是怎麼換地方執行:(程式由上而下依序讀)
- 程式在區塊1執行
- 區塊1生成區塊a
- 程式在區塊a執行
- 程式回到區塊1執行,區塊1回收區塊a
- 程式在區塊1執行
- 區塊1生成區塊b
- 程式在區塊b執行
- 程式回到區塊1執行,區塊1回收區塊b
- 區塊1結束
所以我們也可以把 區塊1 當作 區塊a 以及 區塊b 的父親。
那麼區塊有什麼特殊的地方?
區塊最直觀的影響就是無法使用其他區塊的變數,以圖片的例子,區塊a 無法使用 區塊1 以及 區塊b 的變數,同理的,區塊1也無法使用 區塊a 以及 區塊b 裡生成的變數。
不過當資料作為多資料型態的時候,就有一些不同,子區塊可以使用父親區塊的多資料型態的資料,之後提到list、dictionary以及tuple時,會再提及。
一般程式使用 { },來設定區塊的範圍,而python 使用縮排與冒號,因此縮排在python格外重要。
寫python時需要注意編輯器對縮排的定義,如果是python提供的編輯器,可以使用4個space或是1個tab
if ()
if 就是如果,如果就是 if 。這裡是用來判斷一個假設是否成立而提出的。當 「假設」 也就是 「判斷的條件」 寫在()裡面,判斷正確後要執行的內容寫在 : 之後。
: 之後可以使用區塊或是單行內容。
使用區塊:
a=2
if(a == 2):
print("Hello")
print(True)
單行使用:
a=2
if(a == 2): print(True)
單行使用只允許最多一句執行內容
if… else… 以及 if… elif… else
if… else…
判斷後有正確與錯誤的結果,if 之後的區塊可以執行判斷正確後的程式,而else 就是提供給判斷錯誤時,可以執行的程式內容。
result = True
if(result):
print("狀態為:真")
else:
print("狀態為:假")
if… elif… else…
這個判斷式更多使用在判斷狀態,而不只是單純的對與錯,直接看以下的例子。
status = 3
if(status == 0): print("狀態為:0")
elif(status == 1): print("狀態為:1")
elif(status == 2): print("狀態為:2")
else: print("狀態為:012以外的狀態")
else… 在對與錯的判斷裡,扮演相反的角色,但在多元判斷裡,扮演「皆不符合」的角色
小提醒
else… 是必要的嗎?
答案是否定的。但如果在執行多元判斷時後,通常會建議加上else…,因為無法預期使用者會給你什麼驚為天人、意想不到的輸入內容,所以加上else…可以很好的避免程式發生問題。不過如果判斷的結果只有對錯之分,並且只是要在判斷後有額外的程式執行,那else…就不是非常必要了。
想像一個機器人有動作1-3,結果有天不小心告訴它:「請執行動作4。」機器人肯定當場跟你翻臉xddd。
你可能會發現…
到這裡聰明的你,可能會開始想嘗試做一個模擬的計算機功能,但你會發現你的計算機小程式不斷用錯誤訊息出來。這並不是python出問題了,只是你還沒有 資料型態 的概念。別急,很快你就會認識它。
結語
我們即將進入五個要素 – 控制單元的下半部分,for 以及 while 迴圈。
This article was written by 洋洋. Any similarities to other works are purely coincidental.