Python學習過程中的錯誤記錄 有關elif

2021-07-02 02:37:10 字數 1215 閱讀 4086

有的時候,乙個 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,執行完對應的**塊,後面的條件判斷就直接忽略,不再執行了。

在idle下使用elif的過程中,誤以為寫入格式應該是上述例子中所給的那樣,結果出現語法報錯:

之後,改正方式,直接在第乙個if的執行語塊後回車

頂格輸入elif語句即可:

而上述例子中給出的對齊書寫規格可以用在自己新建的file中,再按f5執行得到結果:

學習WebService過程中遇到的錯誤歸總

1 org.apache.cxf.endpoint.serverimpl cannot be cast to com.ws.service.ilove 這個錯誤主要因為使用的factory不正確.serve ctorybean,jaxwsserve ctorybean 用於伺服器端.前者針對pojo...

學習android過程遇見的錯誤記錄

導致無法調出activity的錯誤 1.新建的activity忘記在androidmanifest中配置 2.activity中沒有設定layout中xml 檔案 setcontentview r.layout.xmlname 3.使用listview導致的錯誤 對應的xml檔案中的拼寫錯誤,誤將t...

Python學習過程中的問題

args 和 kwargs args代表位置引數,它會接收任意多個引數並把這些引數作為元組傳遞給函式。kwargs代表的關鍵字引數,允許你使用沒有事先定義的引數名,另外,位置引數一定要放在關鍵字引數的前面。new 和 init 的區別 建立乙個新例項時呼叫 new 初始化乙個例項時用 init 這是...