if-else-elif-if巢狀
想一想:在使用if的時候,它只能做到滿足條件時要做的事情。那萬一需要在不滿足條件的時候,做某些事,該怎麼辦呢?
答:使用 if-else
<1>if-else的使用格式
if 條件:
滿足條件時要做的事情1
滿足條件時要做的事情2
滿足條件時要做的事情3
…(省略)…
else:
不滿足條件時要做的事情1
不滿足條件時要做的事情2
不滿足條件時要做的事情3
…(省略)…
demo1
chePiao = 1 # 用1代表有車票,0代表沒有車票 if chePiao == 1: print("有車票,可以上火車") print("終於可以見到Ta了,美滋滋~~~") else: print("沒有車票,不能上車") print("親愛的,那就下次見了")
結果1:有車票的情況
有車票,可以上火車
終於可以見到Ta了,美滋滋~~~
結果2:沒有車票的情況
沒有車票,不能上車
親愛的,那就下次見了
elif
想一想:
if能完成當xxx時做事情
if-else能完成當xxx時做事情1,否則做事情2
如果有這樣一種情況:當xxx1滿足時做事情1;當xxx1不滿足、xxx2滿足時做事情2;當xxx2不滿足、xxx3滿足時做事情3,那該怎麼實現呢?
答:
elif
<1> elif的功能
elif的使用格式如下:
if xxx1: 事情1 elif xxx2: 事情2 elif xxx3: 事情3
說明:
當xxx1滿足時,執行事情1,然後整個if結束
當xxx1不滿足時,那麼判斷xxx2,如果xxx2滿足,則執行事情2,然後整個if結束
當xxx1不滿足時,xxx2也不滿足,如果xxx3滿足,則執行事情3,然後整個if結束
demo:
score = 77 if score>=90 and score<=100: print('本次考試,等級為A') elif score>=80 and score<90: print('本次考試,等級為B') elif score>=70 and score<80: print('本次考試,等級為C') elif score>=60 and score<70: print('本次考試,等級為D') elif score>=0 and score<60: print('本次考試,等級為E')
<2> 注意點
可以和else一起使用
if 性別為男性:
輸出男性的體重
…
elif 性別為女性:
輸出女性的體重
…
else:
第三種性別的體重
…
說明:
當 “性別為男性” 滿足時,執行 “輸出男性的體重”的相關程式碼
當 “性別為男性” 不滿足時,如果 “性別為女性”滿足,則執行 “輸出女性的體重”的相關程式碼
當 “性別為男性” 不滿足,“性別為女性”也不滿足,那麼久預設執行else後面的程式碼,即 “第三種性別的體重”相關程式碼
elif必須和if一起使用,否則出錯
else 一般用在最後,即所有條件都不滿足時使用
通過學習if的基本用法,已經知道了
當需要滿足條件去做事情的這種情況需要使用if
當滿足條件時做事情A,不滿足條件做事情B的這種情況使用if-else
想一想:
坐火車或者地鐵的實際情況是:先進行安檢如果安檢通過才會判斷是否有車票,或者是先檢查是否有車票之後才會進行安檢,即實際的情況某個判斷是再另外一個判斷成立的基礎上進行的,這樣的情況該怎樣解決呢?
答:
if巢狀
<1>if巢狀的格式
if 條件1:
滿足條件1 做的事情1
滿足條件1 做的事情2
...(省略)...
if 條件2:
滿足條件2 做的事情1
滿足條件2 做的事情2
...(省略)...
說明
外層的if判斷,也可以是if-else
內層的if判斷,也可以是if-else
根據實際開發的情況,進行選擇
<2>if巢狀的應用
demo:
chePiao = 1 # 用1代表有車票,0代表沒有車票
daoLenght = 9 # 刀子的長度,單位為cm
if chePiao == 1:
print("有車票,可以進站")
if daoLenght < 10:
print("通過安檢")
print("終於可以見到Ta了,美滋滋~~~")
else:
print("沒有通過安檢")
print("刀子的長度超過規定,等待警察處理...")
else:
print("沒有車票,不能進站")
print("親愛的,那就下次見了")
結果1:chePiao = 1;daoLenght = 9
有車票,可以進站
通過安檢
終於可以見到Ta了,美滋滋~~~
結果2:chePiao = 1;daoLenght = 20
有車票,可以進站
沒有通過安檢
刀子的長度超過規定,等待警察處理...
結果3:chePiao = 0;daoLenght = 9
沒有車票,不能進站
親愛的,那就下次見了
結果4:chePiao = 0;daoLenght = 20
沒有車票,不能進站
親愛的,那就下次見了
想一想:為什麼結果3和結果4相同???