資料分析 | Python新手村02_條件判斷式

2022/11/25閱讀時間約 5 分鐘
經歷過第一次的課程內容後,我們已經初步理解到Python的基本運算功能,接著就要開始進入到高階程式語法都具備的控制邏輯系列,首先,來個小小開胃菜—if條件判斷

if-else

直接來帶範例會比較清楚理解:
chinese_str = input("請輸入國文分數:")
chinese_int = int(chinese_str)
if chinese_int >= 60:
print(f"國文分數是{chinese_int}")
print("及格")
else:
print("沒有複習")
print("不及格")
print("程式結束")
第一次我們輸入國文分數為50分,由於數值50並沒有大於60,第一個if敘述的condition條件判斷就會是False,因次進入else條件,執行結果為:
沒有複習 
不及格 
程式結束
第二次我們輸入國文分數為90分,由於90 > = 60,所以執行if判斷程式,打印出:
國文分數是90 
及格 
程式結束

if-else-elif

更複雜一點的,還可以另外加上elif,同樣以輸入國文分數為範例:
  1. 90(含)~100分為「優」
  2. 80(含)~89分為「甲」
  3. 70(含)~79分為「乙」
  4. 60(含)~69分為「丙」
  5. 0(含)~59分為「丁」
chinese = int(input("請輸入國文分數:"))
if chinese >= 90:
print("優")
elif chinese >= 80:
print("甲")
elif chinese >= 70:
print("乙")
elif chinese >= 60:
print("丙")
else:
print("丁")

巢狀判斷

除了第一層的邏輯判斷之外,還可以使用「巢狀判斷」在一個判斷式中,另外包住其它的判斷式。舉個類似的例子,我們除了要求輸入國文分數外,還需輸入數學分數:
  • 國文分數100 AND 數學分數100 ,獲得獎金1000
  • 國文分數100 OR 數學分數100,獲得獎金500
chinese = int(input("請輸入國文分數:"))
english = int(input("請輸入數學分數:"))
bonus = 0
if chinese == 100:
if english == 100:
bonus = 1000
else:
bonus = 500
else:
if english == 100:
bonus = 500
else:
bonus = 0

print(f"獎金是:{bonus}")
假設我們輸入國文分數為90,數學分數為100,程式打印結果就會出現:
獎金是:500
假設我們輸入國文分數為100,數學分數也為100,程式打印結果就會出現:
獎金是:1000

邏輯運算子

「邏輯運算子」可以判斷「and」( 且 )、「or」( 或 ) 和「not」( 非 ) 三種邏輯狀態,運算的結果只有 True 或是 False 兩種。
除此之外,還可以搭配運用邏輯運算子來重寫程式碼:
chinese = int(input("請輸入國文分數:"))
english = int(input("請輸入數學分數:"))
bonus = 0

if chinese == 100 and english == 100:
bonus = 1000
elif chinese == 100 or english == 100:
bonus = 500
else:
bonus = 0

print(f"獎金是:{bonus}")
有了以上這些基礎觀念後,就可以試著設計一個計算身體質量指數(Body Mass Index, BMI)的小程式:當我們輸入身高與體重之後,計算出BMI值來衡量身體肥胖程度。
height = eval(input("請輸入身高(公分):"))
weight = eval(input("請輸入體重(公斤):"))
bmi = weight / (height / 100) ** 2
print(f"BMI={bmi:.2f}")
if bmi < 18.5 :
    state = "體重過輕"
elif bmi < 24:
    state = "正常"
elif bmi < 27:
    state = "體重過重"
elif bmi < 30:
    state = "輕度肥胖"
elif bmi < 35:
    state = "中度肥胖"
else:
    state = "重度肥胖"
print(state)
我輸入自己的實際身高為178,體重為70,打印出的結果為:
BMI=22.09 
正常
此次的條件判斷就演練到這邊,我們下回繼續,掰💪
贊助支持創作者,成為他繼續創作的動力吧!
喜歡對稱,也喜歡大膽留白,喜歡狗,也喜歡貓,喜歡朝更好的自己邁進--目前在互聯網時代,做數據運營的工作,現在的我,還喜歡窩在家,用簡單的事物填滿每一天。
涵蓋一個完整產品開發所需要學習到的數據分析架構
如果要發表留言,請先登入註冊會員
打造你的創作天地
在這裡尋找共鳴,與方格子的 35 萬格友分享觀點與生活。
領取見面禮
只要設定追蹤作者,即可享有 48小時
Premium 閱讀權限