1. 程式人生 > >if-else-elif-if巢狀

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相同???