[python筆記] 3.五個要素之五 – 控制(條件)

前言:

對應學習一個新的程式語言的開始(上),裡面的五個要素之控制單元,也就是python的條件函數 if 。

python 還有另一種控制,與重複執行有關,這樣的控制稱迴圈函數,也就是python裡的for 、while,這個留到下一章來看,這裡我們只單獨看 if 如何使用。

閱讀時間:5 分鐘

學習if之前,先了解python的區塊

區塊是什麼?

可以將區塊想像成工作空間,當進入一個新的區塊,就表示程式到了一個新的空間裡工作。

這張圖片為例子,來解釋成是怎麼換地方執行:(程式由上而下依序讀)

  1. 程式在區塊1執行
  2. 區塊1生成區塊a
  3. 程式在區塊a執行
  4. 程式回到區塊1執行,區塊1回收區塊a
  5. 程式在區塊1執行
  6. 區塊1生成區塊b
  7. 程式在區塊b執行
  8. 程式回到區塊1執行,區塊1回收區塊b
  9. 區塊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.

我們是 Be Good Tool
團隊由幾位工程師、設計師與PM組成
專注開發各種免費網站工具和推廣優質的APP
歡迎到我們的線上工具列表看看喔!