資料操作大判官 - IF 判斷式操作(附 Python 程式碼)
在 Python 裡,流程控制有三大巨頭:if 判斷式、while 迴圈、for 迴圈。這也是對於沒有基礎的程式入門者,最容易頭昏腦漲的地方。但是一旦搞懂了,對於之後的資料存取及分析將會受用無窮!本篇文章,為了讓入門者更輕鬆、更有邏輯的學習,先帶領大家從流程控制中最頻繁使用的 if 判斷式開始,以下開始介紹 Python 中 if 判斷式的基本語法及應用。
一、基本語法
若 if 判斷條件式 (Condition) 成立,則執行底下縮排的程式陳述式 (Statement),如圖一所示,且執行順序是由上至下;若不符合條件,則不執行。而且在 Python 裡,使用 if 判斷式的寫法都是既定的,不能隨意更改,否則會錯誤。
除基本的 if 判斷式外,我們亦常使用「elif」及「else」的搭配:
- elif:即是「else if」的縮寫,它可有具有零個或多個 elif 部分。當if條件條件不符合時,則會向下尋找elif的條件是否吻合所設的條件,如圖一的 elif 下的 condition2,若符合,則會執行 elif 下的陳述式,如圖一的 statement2。
- else:即是最後的判斷條件式,它是一個可寫或可不寫的部分。當 if 與 elif 的條件式均不符合所設的條件式,則會執行 else 下的陳述式,如圖一的 statement4。
有了 if 判斷式的基本認知後,我們還要知道 if 判斷式的重點規則:
- if-elif-else 條件式 (Condition) 最後需以「:」結尾。
- 程式執行 (Statement) 的部分要縮排。
現在我們可以嘗試將圖一的程式碼修改,設定條件及其對應的執行敘述。
二、if 判斷式的應用
假設準備結算期末成績,有許多學生的成績資料要批改整理,我們可以寫一個小程式交由電腦快速地達到目的,避免重複性的動作,以節省大量的時間。
若一位學生的期末成績為 70 分(設定成績變數),想要判斷這位學生的考試成績是否及格,我們可以在第一行的 if 判斷式設定及格條件:60 分以上及格,如程式碼1所示。
程式碼1:
score = 70 # 設定成績變數if score >= 60: # 60分以上及格 print("及格!")else: # 不符合以上條件的時候執行 print("不及格!")
產出:
及格!
一個簡單的小程式就這樣完成了!大家可以隨意更改變數跟條件,嘗試寫出自己需要的 if 判斷式!
接下來,我們來嘗試寫寫看更複雜的 if 判斷式,並讓 elif 參與進來。這次我們將把百分制成績 (0~100) 轉換成等第的 A、B、C 及 F,如程式碼2所示。
程式碼2:
score = 70 # 設定成績變數if (score > 80): print("A")elif (score >= 70) & (score < 80): # 加上括號分群幫助易讀 print("B")elif (score >= 60) & (score < 70): print("C")else: print("F")
產出:
B
在判斷條件式中,添加括號可以提升程式碼的易讀性,建議程式寫作時盡量養成寫括號的習慣,可以降低程式碼出錯的機率。
以上就是本文對 if 判斷式的介紹, if 判斷式內也可以再寫一層 if 判斷式或加入迴圈做更多的變化,大家可以自由的嘗試。
如果你喜歡我的文章,請給我一點掌聲~~
Jupyter notebook 程式碼:IF 判斷式操作 — 資料操作的大判官
作者:戴若竹(臺灣行銷研究特邀作者)、鍾皓軒(臺灣行銷研究有限公司創辦人)
更多實戰案例及情境好文推薦
探尋顧客內心最真實的意圖-關鍵字搜尋分析(Keyword Search Analytics)
探尋顧客內心最真實的意圖-關鍵字搜尋分析(Keyword Search Analytics) 以市場區隔與機器學習篩選有價值的顧客?找出成功
動態網頁爬蟲第二道鎖 - Selenium教學:如何使用find_element(s)取得任何網頁上能看到的內容(附Python 程式碼)
動態網頁爬蟲第二道鎖 - Selenium教學:如何使用find_element(s)取得任何網頁上能看到的內容(附Python 程式碼)