Python if

Python if 陳述句的基礎與3種操作

最後更新時間: 2021 年 1 月 21 日

Python 如果的事,if 不僅限於愛情。

if 的意思是如果、假如,在英語的世界中,if 是連接詞(conjunction),連接兩個句子;Python 的世界裡,if 是陳述句,陳述完一定要加上冒號,心意才能傳達。

劍橋辭典 if 的意思

談到如果,不自覺的就會有首歌的旋律進入腦中:如果的事

這首歌很具體的把如果體現出來。在 Python 的世界中,if (如果) 也以類似的方式運作,叨叨地訴說疑問,尋找符合的答覆。

if 陳述句,給 Python 選擇的機會

Python 的世界中,跟我們現實生活的世界一樣有很多情況需要判別、選擇。

如果的事歌詞中,唱著:

如果你已經不能控制 每天想我一次 如果你因為我而誠實

當問著如果的人,獲得肯定、正向的回答時,那就是愛情到了。

但若是否定的,那麼有可能還處在單戀的狀況。

條件之後都對應著一個結果。

在設計 Python 程式時,也會有很多事要判別與選擇,這時也是使用如果 if 來運作。

我們在 if 之後陳述一個條件,如果條件成立,即條件為真 True,就執行指定的事情

如果 if 的條件不成立,也就是 Fasle 的狀況時,便不會執行 if 陳述下的任務。

當你在編寫 if  陳述句時,要把握三個重點

  1. if 陳述句需配合冒號使用。
  2. 屬於該條件的任務,必須縮排。
  3. if 預設為 True 才執行。

只有一個條件時

以一個簡單的例子來看看,什麼叫做條件成立,什麼是指定的事情。

這個例子中,我們把 1 這個數值,指派給名為 a 的變數。

接著使用 if 陳述句,if a == 1:

下方例子的程式碼代表的意思是:如果 a 這個變數等於 1 是正確的,就執行冒號後方所指派的事,印出 great!這個字串。

>>>a = 1
>>>if a == 1:
>>>    print('great!')
great!

屬於 if 陳述句工作範疇的程式碼,會在冒號後的下一行,以縮排呈現,一般而言是退縮四個空格。

如果沒有縮排,就不屬於 if 的工作範疇。

上方這個例子中,詢問如果的事情是指  a == 1這個條件有沒有成立,指定的事情是 print(‘great!’)。

當你有很多條件要判斷

當你有很多條件要判斷是不是成立的,正確時就執行指定的動作,有兩種操作手法幫你處理。

分別是 :

  1. 使用 if、elif、else
  2. 使用多個 if

這兩個手法面對的情況不同,產出的結果也不同,依照你需要的狀況使用。

使用 if、elif、else 進行比較後擇一執行

Python 在運作 if、elif、else 時,會由上而下逐一的檢測條件是否符合,當有一個條件成立時,便會跳出確認條件的流程。

二擇一的狀況

使用 if 跟else,else 是否則的意思,就是當 if 條件不成立時,就執行else所要求的任務。

例如下方的例子,如果 a 為 1,就印出 great,否則就印出 oops!

if 跟 else 陳述句的最後都需要加上冒號,並將條件下要執行的任務以縮排顯示。

>>>a = 5
>>>if a == 1:
>>>    print('great!')
>>>else:
>>>    print('oops!')
oops!

三個(含)以上擇一的狀況

當你的條件有三個,或者三個以上時,我們特別邀請 elif 來幫忙,elif 是「其他的如果」else if 的意思。

例如,海底總動員的聚會中,你只認識 Nemo、Dory,其他人你都不認識,遇到新朋友你都先跟他們說聲 nice to meet you.。

>>>name = 'Nick'
>>>if name == 'Nemo':
>>>    print('How are you, Nemo?')
>>>elif name  == 'Dory':
>>>    print('Hello, Dory.')
>>>else:
>>>    print('Hi,' + name + ' , nice to meet you.')
Hi, Nick, nice to meet you.

值得留意的是,使用 if-elif 路徑結構時,並非一定要放入else。

以吃到飽餐廳推出來優惠來舉例,「飽咖咖」餐廳推出促銷優惠:

5歲以下兒童免費。

18歲以下青少年 99元。

60歲以下 399元

60歲(含)以上 99元。

程式碼可以這樣寫:

>>>age = 12
>>>
>>>if age < 5:
>>>    price = 0
>>>elif age < 18:
>>>    price = 99
>>>elif age < 60:
>>>    price = 399
>>>elif age >= 60:
>>>    price =99
>>>
>>>print('Your meal cost is NTD' + str(price) + '.') 
Your meal cost is NTD 99.

else涵蓋所有被 if、elif 排除在外的條件,但如果你不需要這麼廣泛的條件,你可以不使用 else,這樣還可以讓你的程式邏輯更清楚,也確保只有滿足相關條件時,程式才會執行,避免漏洞。

使用多個 if,只要條件符合都執行

if-elif-else 結構,只能顯示滿足其中一個條件的結果,如果你想要檢測多個條件是否符合,你可以使用多個 if。

假設現在開一個海底總動員的小聚會,報名的名單是 name 這個串列,當 name 串列中有 Nemo、Dory、Bruce 這三個人,就邀請他們,其他人則不會被邀請。

>>>name = ['Nick', 'Dory', 'Bruce']
>>>if 'Nemo' in name:
>>>    print('invite Nemo.')
>>>if 'Dory' in name:
>>>    print('invite Dory.')
>>>if 'Bruce' in name:
>>>    print('invite Bruce.')
>>>print('Above guests are invited.')
invite Dory.
invite Bruce.
Above guests are invited.

因為 Nemo 沒有報名參加,沒有在 name 的串列中,所以只邀請了 Dory 跟 Bruce 參加聚會。

Python if與各類運算子結合運用

if 陳述句可以結合各類的運算子來構成各式各樣的條件,包括 and 、 or 、 in、==、!= 等運算子。

下方的例子便使用了 >、< 這兩個比較運算子,以及 and 這個邏輯運算子來陳述條件。

>>>x = 8
>>>if x > 1 and x < 10:
>>>    print('buy')
>>>else:
>>>    print('save more money.')
buy

你也可以運用成員運算子in 來陳述條件。

假如你的採買清單中有米(rice)這個品項,你就會去傳統市場採購,如果沒有你就去超市買。

>>>to_buy_list = ['egg', 'apple', 'rice', 'pork', 'corn']
>>>if 'rice' in to_buy_list:
>>>    store = 'traditional markets'
>>>else:
>>>    store = 'PX supermarket'
>>>
>>>print('I am going to ' + store + '.')
I am going to traditional markets.

for 與 while 迴圈也是 if 常會結合的應用,我們在迴圈那篇文章專門討論。

如果想瞭解更多 if 的觀念與操作,可以閱讀《Python程式設計的樂趣》、《精通 Python》這兩本書,都有單獨針對 if 做詳細的說明及練習。

延伸閱讀:

Python觀念,從 = 開始

5本Python書推薦,強化你的程式語言觀念

看不懂程式碼?免費「程式語言家教」在這裡!

Python字串基礎與20種常見操作

Python串列(list) 基礎與23個常用操作

Python字典(dictionary)基礎與16種操作

12個入門Python線上課程:讓你快速學會寫程式

Python正規表示式:不一定要會,但會了超省力

學Python可以做什麼:9個Python應用報你知

留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *