經歷過
第一次的課程內容後,我們已經初步理解到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,同樣以輸入國文分數為範例:
- 90(含)~100分為「優」
- 80(含)~89分為「甲」
- 70(含)~79分為「乙」
- 60(含)~69分為「丙」
- 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
正常
此次的條件判斷就演練到這邊,我們下回繼續,掰💪