24.Python比較運算符(關系運算符


比較運算符,也成關系運算符,用於對常量、變量或表達式的結果進行大小、真假等比較,如果比較結果為真,則返回 True;反之,則返回 False。

Python 支持的比較運算符如表 1 所示。

表 1 Python 比較運算符
比較運算符 功能
> 大於,如果運算符前面的值大於后面的值,則返回 True;否則返回 False
>= 大於或等於,如果運算符前面的值大於或等於后面的值,則返回 True;否則返回 False
< 小於,如果運算符前面的值小於后面的值,則返回 True;否則返回 False
<= 小於或等於,如果運算符前面的值小於或等於后面的值,則返回 True;否則返回 False
== 等於,如果運算符前面的值等於后面的值,則返回 True;否則返回 False
!= 不等於,如果運算符前面的值不等於后面的值,則返回 True;否則返回 False
is 判斷兩個變量所引用的對象是否相同,如果相同則返回 True
is not 判斷兩個變量所引用的對象是否不相同,如果不相同則返回 True


下面程序示范了比較運算符的基本用法:

>>> 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 的區別

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

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

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

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

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

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

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

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

再舉一個例子:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM