欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂剖析Python視頻教程之is和= =的區(qū)別是什么

2017-12-20 09:57:17 1932瀏覽

  今天扣丁學(xué)堂給大家介紹一下關(guān)于Python視頻教程之is和==的區(qū)別是什么?首先在Python中一切都是對象,Python中對象包含的三個基本要素,分別是:id(身份標(biāo)識)、type(數(shù)據(jù)類型)和value(值)。對象之間比較是否相等可以用==,也可以用is。目前is和==都是對對象進(jìn)行比較判斷作用的,但對對象比較判斷的內(nèi)容并不相同。下面來看看具體區(qū)別在哪?

is比較的是兩個對象的id值是否相等,也就是比較兩個對象是否為同一個實例對象,是否指向同一個內(nèi)存地址。

==比較的是兩個對象的內(nèi)容是否相等,默認(rèn)會調(diào)用對象的__eq__()方法。以下代碼在Python3.5下測試通過。

==比較操作符和is同一性運(yùn)算符區(qū)別,==是python標(biāo)準(zhǔn)操作符中的比較操作符,用來比較判斷兩個對象的value(值)是否相等。


扣丁學(xué)堂剖析Python視頻教程之is和= =的區(qū)別是什么


代碼1:

>>>a=[1,2,3]

>>>b=a

>>>bisa

True

>>>b==a

True

>>>b=a[:]

>>>bisa

False

>>>b==a

True

解釋一下為什么?is也被叫做同一性運(yùn)算符,也就是id是否相同??聪旅娲a,a和b變量的id不同,所以b==a是True,bisa是False.

代碼2:

>>>id(a)

4364243328

>>>

>>>id(b)

4364202696

哪些情況下is和==結(jié)果是完全相同的?

代碼3:

>>>a=256

>>>b=256

>>>aisb

True

>>>a==b

True

>>>

>>>a=1000

>>>b=10**3

>>>a==b

True

>>>aisb

False

>>>

結(jié)論:數(shù)字類型不完全相同。為什么256時相同,而1000時不同?因為出于對性能的考慮,Python內(nèi)部做了很多的優(yōu)化工作,對于整數(shù)對象,Python把一些頻繁使用的整數(shù)對象緩存起來,保存到一個叫small_ints的鏈表中,在Python的整個生命周期內(nèi),任何需要引用這些整數(shù)對象的地方,都不再重新創(chuàng)建新的對象,而是直接引用緩存中的對象。Python把這些可能頻繁使用的整數(shù)對象規(guī)定在范圍[-5,256]之間的小對象放在small_ints中,但凡是需要用些小整數(shù)時,就從這里面取,不再去臨時創(chuàng)建新的對象。

代碼4:

>>>c=codingke.com'

>>>d=codingke.com'

>>>cisd

False

>>>c==d

True

>>>c='codingkecom'

>>>d='codingkecom'

>>>cisc

True

>>>c==d

True

結(jié)論:字符串類型不完全相同。這個和解釋器實現(xiàn)有關(guān)。

代碼5:

>>>a=(1,2,3)#a和b為元組類型

>>>b=(1,2,3)

>>>aisb

False

>>>a=[1,2,3]#a和b為list類型

>>>b=[1,2,3]

>>>aisb

False

>>>a={codingke:100,'com':1}#a和b為dict類型

>>>b={codingke:100,'com':1}

>>>aisb

False

>>>a=set([1,2,3])#a和b為set類型

>>>b=set([1,2,3])

>>>aisb

False

結(jié)論:當(dāng)變量是數(shù)字、字符串、元組,列表,字典時,is和==都不相同,不能互換使用!當(dāng)比較值時,要使用==,比較是否是同一個內(nèi)存地址時應(yīng)該使用is。當(dāng)然,開發(fā)中比較值的情況比較多。

以上就是關(guān)于Python視頻教程之is和==的區(qū)別的詳細(xì)介紹,最后想要了解更多資訊或?qū)W習(xí)Python開發(fā)請關(guān)注扣丁學(xué)堂官網(wǎng)和微信公眾號??鄱W(xué)堂作為知名的IT培訓(xùn)機(jī)構(gòu),不僅有專業(yè)的Python培訓(xùn)講師和與時俱進(jìn)的課程體系,還有大量的Python全棧開發(fā)工程師視頻教程供學(xué)員觀看學(xué)習(xí),想要學(xué)好Python開發(fā)技術(shù)的小伙伴就抓緊時間行動吧??鄱W(xué)堂Python技術(shù)交流群:279521237。



扣丁學(xué)堂微信公眾號


【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】


查看更多關(guān)于“Python開發(fā)資訊”的相關(guān)文章>>

標(biāo)簽: Python視頻教程 Python基礎(chǔ)教程 Python爬蟲 Python培訓(xùn)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關(guān)村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部