簡(jiǎn)潔而優(yōu)雅的鏈?zhǔn)奖容^
先看一個(gè)示例:
>>> False == False == True
False
你知道這個(gè)表達(dá)式為什么會(huì)會(huì)返回 False 嗎?
它的運(yùn)行原理與下面這個(gè)類(lèi)似:
if 80 < score <= 90:
print("成績(jī)良好")
如果你還是不明白,那我再給你整個(gè)第一個(gè)例子的等價(jià)寫(xiě)法。
>>> False == False and False == True
False
這個(gè)用法叫做鏈?zhǔn)奖容^。
and 和 or 的短路效應(yīng)
and 和 or 是我們?cè)偈煜げ贿^(guò)的兩個(gè)邏輯運(yùn)算符,在 Python 也有它的妙用。
當(dāng)一個(gè) or 表達(dá)式中所有值都為真,Python會(huì)選擇第一個(gè)值
當(dāng)一個(gè) and 表達(dá)式 所有值都為真,Python 會(huì)選擇最后一個(gè)值。
示例如下:
>>>(2 or 3) * (5 and 6 and 7)
14 # 2*7
連接多個(gè)列表最極客的方式
>>> a = [1,2]
>>> b = [3,4]
>>> c = [5,6]
>>>
>>> sum((a,b,c), [])
[1, 2, 3, 4, 5, 6]
用戶(hù)無(wú)感知的小整數(shù)池
為避免整數(shù)頻繁申請(qǐng)和銷(xiāo)毀內(nèi)存空間,Python 定義了一個(gè)小整數(shù)池 [-5, 256] 這些整數(shù)對(duì)象是提前建立好的,不會(huì)被垃圾回收。
以下代碼在終端Python環(huán)境下測(cè)試,如果在IDE中測(cè)試,由于 IDE 的影響,效果會(huì)有所不同。
>>> a = -6
>>> b = -6
>>> a is b
False
>>> a = 256
>>> b = 256
>>> a is b
True
>>> a = 257
>>> b = 257
>>> a is b
False
>>> a = 257; b = 257
>>> a is b
True
問(wèn)題又來(lái)了:最后一個(gè)示例,為啥是True?
因?yàn)楫?dāng)你在同一行里,同時(shí)給兩個(gè)變量賦同一值時(shí),解釋器知道這個(gè)對(duì)象已經(jīng)生成,那么它就會(huì)引用到同一個(gè)對(duì)象。如果分成兩行的話(huà),解釋器并不知道這個(gè)對(duì)象已經(jīng)存在了,就會(huì)重新申請(qǐng)內(nèi)存存放這個(gè)對(duì)象。
-
原理
+關(guān)注
關(guān)注
4文章
550瀏覽量
44853 -
python
+關(guān)注
關(guān)注
55文章
4774瀏覽量
84386 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6489
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論