您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(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)容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發(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)容。