Python中,if與elif有何區別?
01-15
if與elif似乎功能相同。
為何要寫【if sth】,然後【elif sth】;而不是直接寫成【if sth】,然後接著【if sth】。elif有什麼別的功能區別於if嗎?
請看https://github.com/pythonpeixun/article/blob/master/python/learn_python_follow_brother_huang_5.md
若全部用if語句,程序運行時會遍歷所有if(不管每個if後的邏輯運算是否為True)。而用if-elif,程序運行時,只要if或後續某一個elif之一滿足邏輯值為True,則程序執行完對應輸出語句後自動結束該輪if-elif(即不會再去冗餘地執行後續的elif或else)。程序執行效率更高,在項目越龐大代碼越多的情況下體現越明顯。
是不同的
a = True
b=Trueif a: print(「代碼塊1」)if b:
print(「代碼塊2」)代碼塊1和代碼塊2都會被輸出,而再想一下如果是使用elif:a = True
b=Trueif a: print(「代碼塊1」)elif b: print(「代碼塊2」)只會輸出代碼塊1,而不會輸出代碼塊2了elif翻譯過來大概是 」否則的話如果...『』
a = 10
if a == 10:____print "尼瑪"elif a &> 1:____print "你大爺"else:____print …print "end"運行結果
尼瑪
end-------------------------
a = 10
if a == 10:
____print "尼瑪"if a &> 1:____print "你大爺"____print "end"運行結果
尼瑪
你大爺end爪機,真累了。如果寫成你說的那樣 if後面接著if,在運行的時候每個if都會執行。影響效率。
其他語言中有switch case這種用法,python沒有switch,但是elif 可以實現這種。
當一個塊里的 if 或者 任何一個elif 判斷為真時,後面的 elif 都不會執行了。(問題是挺久以前的了,我初學Python,剛好也搜這個問題,回答一下。)
兩者的區別,看使用就好了。
elif是依附於if存在的,兩者的運行邏輯相同,如果僅僅需要一次判斷,則僅用if就行,如果需要多路判斷則在if後面添加數量不等的elif;else是在所有if/elif句判定為FALSE後直接執行的,本身不帶布爾運算式子。
你這個問題很好的說明了elif為什麼要被發明出來。
if - elif中,只要有一個分支為True就會跳出整個 if - elif ,如果使用if會運行每一個if下的代碼。
推薦閱讀:
※Abaqus中如何根據不同的材料來創建對應的set?
※pycham如何整合pyqt5並安裝qtdesigner?
※初學python和機器學習,想知道怎樣才能達到自己獨立編寫程序的能力?
※學習TensorFlow,Python 需要掌握到什麼程度才可以?
※如何入門Keras?