Python 簡易手冊

單元 11 - 布林運算子

布林運算子 (Boolean operator) 為關鍵字 (keyword) orandnot ,用來進行布林運算 (Boolean operation) , or 就是做邏輯「或」運算, and 為邏輯「且」運算, not 則是邏輯「非」運算

種類運算子
or
and
not

not 是把隨後的運算元 (operand) 真 (true) 變成假 (false) ,假變成真,例如

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 轉換 0 的真假值
print(not 0)

# 轉換 1 的真假值
print(not 1)

# 轉換空串列的真假值
print(not [])

# 轉換非空串列的真假值
print(not [0])

# 檔名: bool_demo.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 2 月

Python 中所有物件 (object) 都有預設的布林值 (Boolean value) ,在數字型態,所有非 0 的值的都是真,非空的複合資料型態 (compound data type) 都是真,這是在類別 (class) 中定義布林方法來決定物件的布林值,單元 57 - 字串方法與布林方法會詳細介紹如何定義布林方法。

第 2 行轉換整數 0 的布林值,由於 0False ,因此轉換後會得到 True

 1
 2
# 轉換 0 的真假值
print(not 0)

第 5 行轉換整數 1 的布林值,由於 1True ,因此轉換後會得到 False

 4
 5
# 轉換 1 的真假值
print(not 1)

第 8 行轉換空串列的布林值,由於空串列是 False ,因此轉換後會得到 True

 7
 8
# 轉換空串列的真假值
print(not [])

串列 (list) 是 Python 中最常用的資料結構 (data structure) 之一,單元 39 - 串列會詳細介紹串列的用法。

第 11 行轉換非空串列的布林值,由於非空串列是 True ,因此轉換後會得到 False

10
11
# 轉換非空串列的真假值
print(not [0])

此例執行結果如下

> python bool_demo.py
True
False
True
False
>

andor 則是計算前後兩個運算元,運算元可以是數值 (value) 或是運算式 (expression) ,如果是數值就會依計算結果,回傳真或假的那個運算元,反之運算式就是直接回傳計算出的真或假,舉例如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 以下回傳 0
print(0 and [0])

# 以下回傳 False
print(1 > 0 and 2 < 1)

# 以下回傳 [0]
print(0 or [0])

# 以下回傳 True
print(1.0 == 1 or 2 + 0j == 2)

# 檔名: bool_demo2.py
# 說明: 《Python簡易手冊》的範例
# 網址: http://kaiching.org
# 作者: Kaiching Chang
# 時間: 2024 年 2 月

第 2 行, 0[0]and 且運算,由於 0False[0]True ,因此這一行會印出 0

 1
 2
# 以下回傳 0
print(0 and [0])

第 5 行,兩個比較運算式都計算結果都是 False ,因此這一行會印出 False

 4
 5
# 以下回傳 False
print(1 > 0 and 2 < 1)

單元 13 - 比較運算子會詳細介紹比較運算式的用法。

第 8 行, 0[0]or 或運算,由於 0False[0]True ,因此這一行會印出 [0]

 7
 8
# 以下回傳 [0]
print(0 or [0])

第 11 行,由於 == 是做數值相等比較,浮點數 1.0 的值等於整數 1 ,因此 or 之前的第一個運算式就得到 True ,就會直接回傳 True

10
11
# 以下回傳 True
print(1.0 == 1 or 2 + 0j == 2)

複數是數字型態的一種,在單元 6 - 數字型態介紹包括複數等的三種數字型態。

如果要比較的是兩個變數 (variable) 是否都指向相同物件,這要用到關鍵字 is單元 18 - is 運算子會詳細介紹 is 運算子的用法。

此例執行結果如下

> python bool_demo2.py
0
False
[0]
True
>

參考資料

上一頁 單元 10 - 底線
回 Python 簡易手冊 首頁
下一頁 單元 12 - 算術運算子
回 Python 教材首頁
回程式語言教材首頁