簡(jiǎn)潔而優(yōu)雅的鏈?zhǔn)奖容^
先看一個(gè)示例:
>>> False == False == True
False
你知道這個(gè)表達(dá)式為什么會(huì)會(huì)返回 False 嗎?
它的運(yùn)行原理與下面這個(gè)類似:
if 80 < score <= 90:
print("成績良好")
如果你還是不明白,那我再給你整個(gè)第一個(gè)例子的等價(jià)寫法。
>>> False == False and False == True
False
這個(gè)用法叫做鏈?zhǔn)奖容^。
and 和 or 的短路效應(yīng)
and 和 or 是我們?cè)偈煜げ贿^的兩個(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]
用戶無感知的小整數(shù)池
為避免整數(shù)頻繁申請(qǐng)和銷毀內(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
問題又來了:最后一個(gè)示例,為啥是True?
因?yàn)楫?dāng)你在同一行里,同時(shí)給兩個(gè)變量賦同一值時(shí),解釋器知道這個(gè)對(duì)象已經(jīng)生成,那么它就會(huì)引用到同一個(gè)對(duì)象。如果分成兩行的話,解釋器并不知道這個(gè)對(duì)象已經(jīng)存在了,就會(huì)重新申請(qǐng)內(nèi)存存放這個(gè)對(duì)象。
-
原理
+關(guān)注
關(guān)注
4文章
550瀏覽量
45391 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86760 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6765
發(fā)布評(píng)論請(qǐng)先 登錄
跟老齊學(xué)Python:從入門到精通
電機(jī)選型計(jì)算公式與知識(shí)點(diǎn)匯總
電氣工程師必知必會(huì)的100個(gè)電?知識(shí)點(diǎn)分享
華邦電子安全閃存關(guān)鍵知識(shí)點(diǎn)
PCB繪制基礎(chǔ)知識(shí)

Aigtek功率放大器應(yīng)用:電感線圈的知識(shí)點(diǎn)分享

后悔沒有早點(diǎn)看到:天線設(shè)計(jì)中的知識(shí)點(diǎn)!

硬件工程師面試基礎(chǔ)知識(shí)點(diǎn)

接口測(cè)試?yán)碚摗⒁蓡柺珍浥c擴(kuò)展相關(guān)知識(shí)點(diǎn)

Verilog HDL的基礎(chǔ)知識(shí)

負(fù)載開關(guān)基礎(chǔ)知識(shí)

評(píng)論