Python - 邏輯運算子



Python 邏輯運算子

Python 邏輯運算子用於構成複合布林表示式。這些邏輯運算子的每個運算元本身都是一個布林表示式。例如,

示例

age > 16 and marks > 80
percentage < 50 or attendance < 75

除了關鍵字 False 之外,Python 將 None、所有型別的數字零以及空序列(字串元組列表)、空字典和空集合解釋為 False。所有其他值都視為 True。

Python 中有三個邏輯運算子。“and”、“or”和“not”。它們必須小寫。

邏輯“and”運算子

為了使複合布林表示式為 True,兩個運算元都必須為 True。如果任何一個或兩個運算元計算結果為 False,則表示式返回 False。

邏輯“and”運算子真值表

下表顯示了各種情況。

a b a and b
F F F
F T F
T F F
T T T

邏輯“or”運算子

相反,如果任何一個運算元為 True,則 or 運算子返回 True。為了使複合布林表示式為 False,兩個運算元都必須為 False。

邏輯“or”運算子真值表

下表顯示了“or”運算子在不同條件下的結果

a b a or b
F F F
F T T
T F T
T T T

邏輯“not”運算子

這是一個一元運算子。後面跟隨的布林運算元的狀態被反轉。因此,not True 變為 False,not False 變為 True。

邏輯“not”運算子真值表

a not (a)
F T
T F

Python 直譯器如何評估邏輯運算子?

表示式“x and y”首先計算“x”。如果“x”為假,則返回其值;否則,計算“y”並返回結果值。

logical_operator

表示式“x or y”首先計算“x”;如果“x”為真,則返回其值;否則,計算“y”並返回結果值。

x_or_y

Python 邏輯運算子示例

下面給出了一些邏輯運算子的用例 -

示例 1:帶有布林條件的邏輯運算子

x = 10
y = 20
print("x > 0 and x < 10:",x > 0 and x < 10)
print("x > 0 and y > 10:",x > 0 and y > 10)
print("x > 10 or y > 10:",x > 10 or y > 10)
print("x%2 == 0 and y%2 == 0:",x%2 == 0 and y%2 == 0)
print ("not (x+y>15):", not (x+y)>15)

它將產生以下輸出 -

x > 0 and x < 10: False
x > 0 and y > 10: True
x > 10 or y > 10: True
x%2 == 0 and y%2 == 0: True
not (x+y>15): False

示例 2:帶有非布林條件的邏輯運算子

我們可以將非布林運算元與邏輯運算子一起使用。在這裡,我們需要注意任何非零數字和非空序列都計算結果為 True。因此,邏輯運算子的相同真值表適用。

在下面的示例中,數值運算元用於邏輯運算子。變數“x”、“y”計算結果為 True,“z”為 False

x = 10
y = 20
z = 0
print("x and y:",x and y)
print("x or y:",x or y)
print("z or x:",z or x)
print("y or z:", y or z)

它將產生以下輸出 -

x and y: 20
x or y: 10
z or x: 10
y or z: 20

示例 3:帶有字串和元組的邏輯運算子

在以下示例中,字串變數被視為 True,空元組被視為 False。

a="Hello"
b=tuple()
print("a and b:",a and b)
print("b or a:",b or a)

它將產生以下輸出 -

a and b: ()
b or a: Hello

示例 4:用於比較序列(列表)的邏輯運算子

最後,下面兩個列表物件均非空。因此,x and y 返回後者,x or y 返回前者。

x=[1,2,3]
y=[10,20,30]
print("x and y:",x and y)
print("x or y:",x or y)

它將產生以下輸出 -

x and y: [10, 20, 30]
x or y: [1, 2, 3]
廣告