Python 簡易手冊
單元 11 - 布林運算子
布林運算子 (Boolean operator) 為關鍵字 (keyword) or 、 and 及 not ,用來進行布林運算 (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 的布林值,由於 0 是 False ,因此轉換後會得到 True
1 2 | # 轉換 0 的真假值 print(not 0) |
第 5 行轉換整數 1 的布林值,由於 1 是 True ,因此轉換後會得到 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 |
> |
and 及 or 則是計算前後兩個運算元,運算元可以是數值 (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 且運算,由於 0 為 False , [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 或運算,由於 0 為 False , [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 |
> |