溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中比較運算符==和is的區(qū)別是什么

發(fā)布時間:2020-09-02 15:04:06 來源:億速云 閱讀:151 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)python中比較運算符==和is的區(qū)別是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

比較運算符,也成關(guān)系運算符,用于對常量、變量或表達式的結(jié)果進行大小、真假等比較,如果比較結(jié)果為真,則返回 True;反之,則返回 False。下面程序示范了比較運算符的基本用法:

>>> print("5是否大于 4:", 5 > 4)
5是否大于 4: True
>>> print("3的4次方是否大于等于90.0:", 3 ** 4 >= 90)
3的4次方是否大于等于90.0: False
>>> print("20是否大于等于20.0:", 20 >= 20.0)
20是否大于等于20.0: True
>>> print("5和5.0是否相等:", 5 == 5.0)
5和5.0是否相等: True
>>> print("True和False是否相等:", True == False)
True和False是否相等: False
>>>

比較運算符 == 和 is 的區(qū)別

初學 Python,大家可能對 is 比較陌生,很多人會誤將它和 == 的功能混為一談,但其實 is 與 == 有本質(zhì)上的區(qū)別,完全不是一碼事兒。

== 用來比較兩個變量的值是否相等,而 is 則用來比對兩個變量引用的是否是同一個對象,例如:

import time
# 獲取當前時間
a = time.gmtime()
b =  time.gmtime()
print(a == b) # a和b兩個時間相等,輸出True
print(a is b) # a和b不是同一個對象,輸出False

上面代碼中 a、b 兩個變量都代表當前系統(tǒng)時間,因此 a、b 兩個變量的時間值是相等的(代碼運行速度很快,能保證是同一時間),故程序使用“==”判斷返回 True。但由于 a、b 兩個變量分別引用不同的對象(每次調(diào)用 gmtime() 函數(shù)都返回不同的對象),因此a is b返回 False。

那么,如何判斷兩個變量是否屬于一個對象呢?Python 提供了一個全局的 id() 函數(shù),它可以用來判斷變量所引用的對象的內(nèi)存地址(相當于對象在計算機內(nèi)存中存儲位置的門牌號),如果兩個對象所在的內(nèi)存地址相同(相當于它們住在同一個房間內(nèi),計算機同一塊內(nèi)存在任一時刻只能存放一個對象),則說明這兩個對象其實是同一個對象。

由此可見,is 判斷其實就是要求通過 id() 函數(shù)計算兩個對象時返回相同的地址。例如,使用 id() 函數(shù)判斷上面的 a、b 兩個變量:

print(id(a))
print(id(b))

從運行結(jié)果中將會看到 a、b 兩個變量所引用的對象的內(nèi)存地址是不同的,這樣通過 is 來判斷 a、b 兩個變量自然也就輸出 False 了。

再舉一個例子:

>>> a = 'cheesezh'
>>> b = 'cheesezh'
>>> id(a)
2680257978480
>>> id(b)
2680257978480
>>> a is b
True

感謝各位的閱讀!關(guān)于python中比較運算符==和is的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI