Python 中條件選擇語句的第三種形式:if-elif-else,對於前面介紹的 if 分支語句,執行過程非常簡單,判斷 if 語句中的表達式是否為True真,如果為True程序就會執行 if 語句下面的代碼塊,if語句中的判斷結果為False假,就會依次判斷 elif 語句中的表達式,如果為True真,程序就會執行 elif 中的代碼塊……(if語句之後可以有任意數量的elif語句)如果前面所有條件都為False假,程序就會執行 else語句下面的代碼塊,else語句最多只可以有一個語句。
下面通過三個實例讓大家進一步熟悉和掌握 if-elif-else語句
實例01:編程實現在控制臺應用程式中輸入學生的語文、數學、英語三門考試成績,單科滿分100分,通過學生成績評定等級,學員等級評定標準如下:
1. A:平均分>=90分
2. B:90分>平均分>=80分
3. C:80分>平均分>=70分
4. D:70分>平均分>=60分
5. E:平均分<60分
操作代碼:代碼縮進請參考圖片
chinese = int(input("請輸入學生的語文成績:"))
maths = int(input("請輸入學生的數學成績:"))
english = int(input("請輸入學生的英語成績:"))
average = (chinese + maths + english) / 3
if average >= 90:
print("學生的平均分為:%.2f,成績綜合評定為:A" % average)
elif average >= 80 and average < 90:
print("學生的平均分為:%.2f,成績綜合評定為:B" % average)
elif average >= 70 and average < 80:
print("學生的平均分為:%.2f,成績綜合評定為:C" % average)
elif average >= 60 and average < 70:
print("學生的平均分為:%.2f,成績綜合評定為:D" % average)
else:
print("學生的平均分為:%.2f,成績綜合評定為:E" % average)
代碼演示:
代碼分析:
首先創建三個變量定義數學、語文、英語成績,並直接把輸入的成績通過int轉換為整型;然後通過變量average計算學生的平均分,使用if-elif-else語句來判斷學生成績的等級,如果if語句判斷結果為True就執行if語句下面的代碼塊,反之判斷結果為False就執行下面的elif語句,每一個判斷語句都具有排他性,判斷結果一旦為True就不再往下執行。
實例02:前面小紅花案例的再一次優化,通過編程實現在控制臺應用程式中輸入學生的語文、數學、英語成績,單科滿分100分,判斷條件如下:
1)如果有一門考試成績是100分
2)如果有兩門考試成績大於90分(含90分)
3)如果三門考試成績都大於80分(含80分)
滿足三個條件中的任意一個,就獎勵一朵小紅花
操作代碼:代碼縮進請參考圖片
chinese = int(input("請輸入學生的語文成績:"))
maths = int(input("請輸入學生的數學成績:"))
english = int(input("請輸入學生的英語成績:"))
course = ""
if chinese == 100 or maths == 100 or english == 100:
if(chinese == 100): course += "語文 "
if(maths == 100): course += "數學 "
if(english == 100): course += "英語 "
print("考試科目:%s考了100分,獎勵一朵小紅花!" % course)
elif(chinese >= 90 and maths >= 90) or (chinese >= 90 and english >= 90) or (maths >= 90 and english >= 90):
if(chinese >= 90): course += "語文 "
if(maths >= 90): course += "數學 "
if(english >= 90): course += "英語 "
print("考試科目:%s高於90分,獎勵一朵小紅花!" % course)
elif chinese >= 80 and maths >= 80 and english >= 80:
print("三門考試科目:語文、數學、英語都大於80分,獎勵一朵小紅花")
else:
print("考試成績不合格,沒有小紅花!")
代碼演示:
代碼分析:
定義三個科目的變量,並把輸入的學生成績直接轉換為整型;通過if-elif-else語句判斷學生的考試成績,首先通過if語句判斷三個科目是否有考100分的,如果有就執行if下面的代碼塊,就不再執行下面的成績;如果判斷結果為False沒有100分的科目就依次執行下面的elif語句,如果elif語句判斷的結果都為False就執行else下面的代碼塊。
實例03:編程實現在控制臺中輸入一個月份,然後判斷這個月份屬於哪個季節
3-5月春季,6-8月夏季,9-11月秋季,12-2月冬季
操作代碼:代碼縮進請參考圖片
month = int(input("請輸入一個月份:"))
if(month == 3 or month == 4 or month == 5):
print("%d月是春季" % month)
elif(month == 6 or month == 7 or month == 8):
print("%d月是夏季" % month)
elif(month == 9 or month == 10 or month == 11):
print("%d月是秋季" % month)
elif(month == 12 or month == 1 or month == 2):
print("%d月是冬季" % month)
代碼演示:
代碼分析:
通過if-elif判斷輸入的月份,同樣具有排他性,一旦判斷結果為True就不再繼續往下執行了,在前期基礎案例裡面,每個代碼演示都會有很多中操作方法,也有很多的小bug,重點在理解相關的知識點。
總結:Python 中條件選擇語句分為三種,分別是 if 語句、if else 語句和 if elif else 語句。這3種分支語句的語法格式和執行流程如圖:
if 語句是獨立的,每個if都會判斷一次,無論是否為true;
if else是兩種可能,如果if為真,就執行if下的代碼,如果if為false,就執行else下面的代碼;
if elif else語句是一個整體,具有排他性,第一個if判斷為true就不在往下進行判斷,如果為false就繼續往下判斷。
每天進步一點點,跟著教頭學Python。