C語言中文網 目錄

Python bool類型和比較運算符(入門必讀)

Python 提供了 bool 類型來表示真(對)或假(錯),比如常見的 5 > 3 比較算式,這個是正確的,在程序世界里稱之為真(對),Python 使用 True 來代表;再比如 4 > 20 比較算式,這個是錯誤的,在程序世界里稱之為假(錯),Python 使用 False 來代表。

由此可見,bool 類型就是用于代表某個事情的真(對)或假(錯),如果這個事情是正確的,用 True 代表;如果這個事情是錯誤的,用 False 代表。

比較運算符用于判斷兩個值(這兩個值既可以是變量,也可以是常量,還可以是表達式)之間的大小,比較運算的結果是 bool 值(True 代表真,False 代表假)。

Python 支持的比較運算符如下:
  • >:大于,如果運算符前面的值大于后面的值,則返回 True;否則返回 False。
  • >=:大于或等于,如果運算符前面的值大于或等于后面的值,則返回 True;否則返回 False。
  • <:小于,如果運算符前面的值小于后面的值,則返回 True;否則返回 False。
  • <=:小于或等于,如果運算符前面的值小于或等于后面的值,則返回 True;否則返回 False。
  • ==:等于,如果運算符前面的值等于后面的值,則返回 True;否則返回 False。
  • !=:不等于,如果運算符前面的值不等于后面的值,則返回 True;否則返回 False。
  • is:判斷兩個變量所引用的對象是否相同,如果相同則返回 True。
  • is not:判斷兩個變量所引用的對象是否不相同,如果不相同則返回 True。

下面程序示范了比較運算符的使用:
# 輸出True
print("5是否大于 4:", 5 > 4)
# 輸出False
print("3的4次方是否大于等于90.0:", 3 ** 4 >= 90)
# 輸出True
print("20是否大于等于20.0:", 20 >= 20.0)
# 輸出True
print("5和5.0是否相等:", 5 == 5.0)
# 輸出False
print("True和False是否相等:", True == False)
上面程序簡單示范了 Python 比較運算符的功能和用法。

Python 的兩個 bool 值分別是 True 和 False,但實際上 True 也可被當成整數 1 使用,False 也可被當成整數 0 使用。也就是說,True、False 兩個值完全可以參與各種算術運算。例如如下代碼:
# 輸出True
print("1和True是否相等:", 1 == True)
# 輸出True
print("0和False是否相等:", 0 == False)
print(True + False) # 輸出1
print(False - True)  # 輸出-1
關于 == 與 is 看上去很相似,但實質上有區別,== 只比較兩個變量的值,但 is 要求兩個變量引用同一個對象。看如下代碼:
import time
# 獲取當前時間
a = time.gmtime()
b =  time.gmtime()
print(a == b) # a和b兩個時間相等,輸出True
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 了。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo