日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:python運(yùn)算符中如何選擇is和==?

我們?cè)跀?shù)學(xué)中想要判斷兩個(gè)對(duì)象是否相等,可以使用=號(hào)。在python中由于比較的數(shù)據(jù)不一定是數(shù)值,所以我們的符號(hào)有is和==可以選擇。那么在不同的條件下,選擇is還是==是有所不同的。下面我們?cè)谏矸葸\(yùn)算符中尋找is和==在判斷對(duì)象引用上的區(qū)別,幫助大家在使用身份運(yùn)算符時(shí)能更好的選擇,具體內(nèi)容如下:


身份運(yùn)算符是用來(lái)判斷兩個(gè)變量是否是引用了相同內(nèi)存地址的運(yùn)算符。

兩個(gè)變量的值相等,它們不一定就是引用了相同的內(nèi)存地址,但如果兩個(gè)變量引用了相同的內(nèi)存地址,那么他們的值必然相等。

身份運(yùn)算符說(shuō)白了其實(shí)就是is符號(hào)。它可以用來(lái)比較兩個(gè)變量是否引用了同一個(gè)對(duì)象。

>>> a = 3
>>> id(a)
140602638349720
>>> hex(id(a)) # 還原成我們看著更順眼的16進(jìn)制,但是本文以10進(jìn)制地址為主(因?yàn)閼校?'0x7fe09a503598'

顧名思義,is是“相同”,而==是指兩者之間的”相等“關(guān)系。所謂相同,比較的是兩者之間的在內(nèi)存中的位置,

>>> a = 3
>>> id(a)
140602638349720
>>> b = 3 # b指向的是和a指向的同一塊地址(但是并不意味這改變了a,b也會(huì)相應(yīng)改變)
>>> id(b)
140602638349720
>>> c = a # a的引用復(fù)制給c,在內(nèi)存中其實(shí)是指向了用一個(gè)對(duì)象
>>> id(c)
140602638349720
>>> a is b
True
>>> a is c
True
>>> b is c
True

我們看到,上面a,b,c的地址相同,所以他們互相之間”相同“

而相等則兩者之間的數(shù)值對(duì)應(yīng)相等

>>> a = 3
>>> b = a
>>> a = 4
>>> b
3
 
>>> a = [3]
>>> b = [3]
>>> id(a)
4351374184
>>> id(b)
4351374112
>>> a is b
False 
>>> a == b
True
>>> a[0] = 4
>>> b
[3]
 
>>> a = [3]
>>> b = a  # b就是a的引用,占得是同一塊地址,而且當(dāng)a的內(nèi)容改變時(shí),b也會(huì)隨之改變,這和上面
# int對(duì)象不同,我也不知道為啥要這么搞。
>>> a[0] = 4 
>>> b
[4]

很多人看到這肯定是一鍋漿糊了,其實(shí)就是一個(gè)原則,能用==就不用is。除了一種情況,那就是判斷對(duì)象是否是None。

>>> if a is None:
...     pass

以上就是我們本篇探究python運(yùn)算符中在不同的情況下選擇is還是==,相信大家已經(jīng)明白兩個(gè)的區(qū)別和用法了,小編還是推薦使用==多一點(diǎn)。


本文題目:創(chuàng)新互聯(lián)Python教程:python運(yùn)算符中如何選擇is和==?
URL分享:http://m.5511xx.com/article/dhisjid.html