>>> a = False + 5
5
>>> a = not(1) + 5
False
如上,將 False
直接進行運算時會作為 0
來計算。
使用邏輯運算符 not
時,not(1)
的值為 False
或 0
。
但為什么直接將 not(1)
放進算術(shù)運算后再次計算的結(jié)果為 False
?
這和 Python 的算法邏輯有關(guān)么?
因為not
不是一個函數(shù)
, 是一個表達式
, 不管你not(1)+5
還是 not (1+5)
, 它的作用也只是將后面的結(jié)果取反而已.
例如:
>>> 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
此外,+
運算符的優(yōu)先級(precedence)高于+
運算符的優(yōu)先級(precedence)高于not
運算符,所以not(1) + 5
中先計算(1) + 5
, 后面的(1)+5
作為not
運算符,所以not(1) + 5
中先計算(1) + 5
, 后面的(1)+5
作為
not(-1) # False
not(-1) + 1 # True