Python之 if-elif-else

有的時候,一個 if … else … 還不夠用。比如,根據年齡的劃分:

條件1:18歲或以上:adult
條件2:6歲或以上:teenager
條件3:6歲以下:kid
我們可以用一個 if age >= 18 判斷是否符合條件1,如果不符合,再通過一個 if 判斷 age >= 6 來判斷是否符合條件2,否則,執行條件3:

if age >= 18:
    print 'adult'
else:
    if age >= 6:
        print 'teenager'
    else:
        print 'kid'

這樣寫出來,我們就得到了一個兩層嵌套的 if … else … 語句。這個邏輯沒有問題,但是,如果繼續增加條件,比如3歲以下是 baby:

if age >= 18:
    print 'adult'
else:
    if age >= 6:
        print 'teenager'
    else:
        if age >= 3:
            print 'kid'
        else:
            print 'baby'

這種縮進只會越來越多,代碼也會越來越難看。

要避免嵌套結構的 if … else …,我們可以用 if … 多個elif … else … 的結構,一次寫完所有的規則:

if age >= 18:
    print 'adult'
elif age >= 6:
    print 'teenager'
elif age >= 3:
    print 'kid'
else:
    print 'baby'

elif 意思就是 else if。這樣一來,我們就寫出了結構非常清晰的一系列條件判斷。

特別注意: 這一系列條件判斷會從上到下依次判斷,如果某個判斷爲 True,執行完對應的代碼塊,後面的條件判斷就直接忽略,不再執行了。

請思考下面的代碼:

age = 8
if age >= 6:
    print 'teenager'
elif age >= 18:
    print 'adult'
else:
    print 'kid'

當 age = 8 時,結果正確,但 age = 20 時,爲什麼沒有打印出 adult?

如果要修復,應該如何修復?
應該將 6和18及對應的輸出互換

本文部分摘自慕課《初識Python》課程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章