省略號(hào)也是對(duì)象
...這是省略號(hào),在Python中,一切皆對(duì)象。它也不例外。
在 Python 中,它叫做 Ellipsis 。
在 Python 3 中你可以直接寫(xiě)…來(lái)得到這玩意。
>>>...
Ellipsis
>>>type(...)
'ellipsis'>
而在 python2 中沒(méi)有…這個(gè)語(yǔ)法,只能直接寫(xiě)Ellipsis來(lái)獲取。
>>>Ellipsis
Ellipsis
>>>type(Ellipsis)
'ellipsis'>
它轉(zhuǎn)為布爾值時(shí)為真
>>>bool(...)
True
最后,這東西是一個(gè)單例。
>>>id(...)
4362672336
>>>id(...)
4362672336
這東西有啥用呢?據(jù)說(shuō)它是Numpy的語(yǔ)法糖,不玩 Numpy 的人,可以說(shuō)是沒(méi)啥用的。
在網(wǎng)上只看到這個(gè) 用...代替 pass ,稍微有點(diǎn)用,但又不是必須使用的。
try:
1/0
exceptZeroDivisionError:
...
類(lèi)的首字母不一定是大寫(xiě)
在正常情況下,我們所編寫(xiě)的所見(jiàn)到的代碼,好像都默許了類(lèi)名首字母大寫(xiě),而實(shí)例用小寫(xiě)的這一準(zhǔn)則。但這并不是強(qiáng)制性的,即使你反過(guò)來(lái)的也沒(méi)有關(guān)系。
但有一些內(nèi)置的類(lèi),首字母都是小寫(xiě),而實(shí)例都是大寫(xiě)。
比如 bool 是類(lèi)名,而 True,F(xiàn)alse 是其實(shí)例;
比如 ellipsis 是類(lèi)名,Ellipsis是實(shí)例;
還有 int,string,float,list,tuple,dict 等一系列數(shù)據(jù)類(lèi)型都是類(lèi)名,它們都是小寫(xiě)。
增量賦值的性能更好
諸如+=和*=這些運(yùn)算符,叫做 增量賦值運(yùn)算符。
這里使用用 += 舉例,以下兩種寫(xiě)法,在效果上是等價(jià)的。
#第一種
a=1;a+=1
#第二種
a=1;a=a+1
+=其背后使用的魔法方法是 __iadd__,如果沒(méi)有實(shí)現(xiàn)這個(gè)方法則會(huì)退而求其次,使用 __add__ 。
這兩種寫(xiě)法有什么區(qū)別呢?
用列表舉例 a += b,使用 __add__ 的話就像是使用了a.extend(b),如果使用 __add__ 的話,則是 a = a+b,前者是直接在原列表上進(jìn)行擴(kuò)展,而后者是先從原列表中取出值,在一個(gè)新的列表中進(jìn)行擴(kuò)展,然后再將新的列表對(duì)象返回給變量,顯然后者的消耗要大些。
所以在能使用增量賦值的時(shí)候盡量使用它。
and 和or 的取值順序
and 和 or 是我們?cè)偈煜げ贿^(guò)的兩個(gè)邏輯運(yùn)算符。而我們通常只用它來(lái)做判斷,很少用它來(lái)取值。
如果一個(gè)or表達(dá)式中所有值都為真,Python會(huì)選擇第一個(gè)值,而and表達(dá)式則會(huì)選擇第二個(gè)。
>>>(2or3)*(5and7)
14#2*7
如何修改解釋器提示符
這個(gè)當(dāng)做今天的一個(gè)小彩蛋吧。應(yīng)該算是比較冷門(mén)的,估計(jì)知道的人很少了吧。
正常情況下,我們?cè)?終端下 執(zhí)行Python 命令是這樣的。
>>>foriinrange(2):
...print(i)
...
0
1
你是否想過(guò)>>>和...這兩個(gè)提示符也是可以修改的呢?
>>>importsys
>>>sys.ps1
'>>>'
>>>sys.ps2
'...'
>>>
>>>sys.ps2='----------------'
>>>sys.ps1='Python>>>'
Python>>>foriinrange(2):
----------------print(i)
----------------
0
1
審核編輯:湯梓紅
-
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90025 -
解釋器
+關(guān)注
關(guān)注
0文章
103瀏覽量
6991
發(fā)布評(píng)論請(qǐng)先 登錄
阻燃系列基礎(chǔ)知識(shí)
無(wú)刷電機(jī)驅(qū)動(dòng)器的基礎(chǔ)知識(shí)
【「Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗(yàn)】01初讀體驗(yàn)
跟老齊學(xué)Python:從入門(mén)到精通
【「# 運(yùn)算放大器參數(shù)解析與LTspice應(yīng)用仿真」閱讀體驗(yàn)】+全書(shū)概覽與第一章閱讀分享
C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍
電機(jī)選型計(jì)算公式與知識(shí)點(diǎn)匯總
最易讀懂的理工科基礎(chǔ)叢書(shū)——圖解電機(jī)基礎(chǔ)知識(shí)入門(mén)
射頻基礎(chǔ)知識(shí)培訓(xùn)(華為)—PPT版
電氣工程師必知必會(huì)的100個(gè)電?知識(shí)點(diǎn)分享
開(kāi)關(guān)電源的基礎(chǔ)知識(shí)題目及答案(免積分)
【北京迅為】iTOP-RK3568OpenHarmony系統(tǒng)南向驅(qū)動(dòng)開(kāi)發(fā)GPIO基礎(chǔ)知識(shí)
python基礎(chǔ)知識(shí)點(diǎn)(一)
評(píng)論