>>> a = False + 5 5
>>> a = not(1) + 5 False
如上,將 False 直接進行運算時會作為 0 來計算。 使用邏輯運算子 not 時,not(1) 的值為 False 或 0。
False
0
not
not(1)
但為什麼直接將 not(1) 放進算術運算後再次計算的結果為 False? 這和 Python 的演算法邏輯有關麼?
因為not不是一個函數, 是一個表達式, 不管你not(1)+5 還是not (1+5), 它的作用也只是將後面的結果取已反而.例如:
函數
表達式
not(1)+5
not (1+5)
>>> not 1 + 2 False >>> not (1 + 2) False >>> not (1 + 2) + 1 False >>> (not (1 + 2)) + 1 1
Python 中 not 運算子的用法Boolean Operations:
not x if x is false, then True, else False
not x
if x is false, then True, else False
此外,+運算符的優先權(precedence)高於not運算子,所以not(1) + 5中先計算(1) + 5, 後面的(1)+5 作為not運算符的操作數. 舉例可以看到:
+
not(1) + 5
(1) + 5
(1)+5
not(-1) # False not(-1) + 1 # True
雷雷
因為
not
不是一個函數
, 是一個表達式
, 不管你not(1)+5
還是not (1+5)
, 它的作用也只是將後面的結果取已反而.例如:
Python 中
not
運算子的用法Boolean Operations:此外,
+
運算符的優先權(precedence)高於not
運算子,所以not(1) + 5
中先計算(1) + 5
, 後面的(1)+5
作為not
運算符的操作數. 舉例可以看到:雷雷