聊一聊Python中,if與elif的那些事兒

2021-10-06 00:13:23 字數 1373 閱讀 7636

作為新手,還真是時常會忘記適用 elif 這個好用的判斷方法。或者乾脆不知道什麼時候適用 elif。

只用 if 進行判斷和 if 與 elif 一起搭配判斷,有什麼區別?

elif的適用情況有哪些?

話不多說來看例子:

在學習群裡看到有個網友丟擲這樣一段**,先來猜猜最終會列印什麼?

x =-10

y =1

if x<20:

y +=

1elif x<10:

y +=

2elif x<0:

y +=

3else

: y +=

4print

(y)

答案是:2

也就是說,當 if 與 elif 互相搭配的時候,只要判斷條件中,找到了乙個符合條件的,執行相應的**之後,就不會進行進行下乙個判斷了。

在這個例子中,x = -10,符合第乙個條件:x<20,執行y = y + 1 = 2,跳出分支,列印y,程式結束!

如果把 elif 全部換成 if 結果會是什麼:

x =-10

y =1

if x<20:

y +=

1if x<10:

y +=

2if x<0:

y +=

3else

: y +=

4print

(y)

答案是:7

這段**是這樣執行的:

判斷第乙個 if 成立,y = y + 1 = 2;

接著判斷第二個 if ,也成立,執行 y = y + 2 = 4

接著進入第三個分支,判斷 if 成立,執行 y = y + 3 = 4 + 3 = 7, else 不執行。

由此可知:

如果有單獨使用 if ,並且多個 if 處在同一縮排上,那麼程式會挨個進行判斷,只要符合條件,就會按照順序執行。

如果 if - elif 或者 if - elif - else 搭配使用,那麼只要判斷成立,執行其下方的語句之後,程式就會退出分支,不會遍歷所有的條件。

elif 的適用情況:

如果碰到多種條件,但只需要乙個輸出的時候,考慮使用 if - elif。這樣可以提高執行效率呀,不需要遍歷嘛!

反過來想,如果你只需要一條路走到黑,那就大膽的只是用 if 吧!

小結

有點說得不清不楚的感覺。

大家一起多敲**,多思考吧!

聊一聊Iterable與Iterator的那些事!

涉及面試題 上面的面試題可以看出,其實都是一回事,只是換了一種提問方式,只要我們能掌握核心要點,隨便面試官怎麼提問,我們都能輕鬆應對!由原始碼圖可以看出,iterable有三個方法,分別是 接下來我們簡單介紹下這裡面的方法。iteratoriterator 複製 該介面主要是返回t型別的元素上的乙個...

聊一聊JavaScript中typeof那點事兒

js是一門指令碼化語言,它在宣告變數時不需確定變數的型別,js在執行時會自動判斷。那麼怎麼判斷變數的型別呢?js提供了typeof運算子,用來判斷變數是什麼型別。方式一 typeof 表示式 對表示式做運算 方式二 typeof 變數名 對變數做運算 型別 結果string string numbe...

聊一聊java中過載與重寫的區別

簡單來說 重寫是子類的方法覆蓋父類的方法,要求方法名和引數都相同 過載是在同乙個類中的兩個或兩個以上的方法,擁有相同的方法名,但是引數卻不相 同,方法體也不相同,最常見的過載的例子就是類的 建構函式 可以參考api幫助文件 看看類的構造方法 舉例如下 過載 乙個類中有乙個方法a,你又在這個類中建立了...