2022-11-25|閱讀時間 ‧ 約 6 分鐘

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

經歷過第一次的課程內容後,我們已經初步理解到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 
正常
此次的條件判斷就演練到這邊,我們下回繼續,掰💪
分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

我吃故窩宅的沙龍 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.