>>> a = False + 5
5
>>> a = not(1) + 5
False
如上,将 False
直接进行运算时会作为 0
来计算。
使用逻辑运算符 not
时,not(1)
的值为 False
或 0
。
但为什么直接将 not(1)
放进算术运算后再次计算的结果为 False
?
这和 Python 的算法逻辑有关么?
怪我咯2017-06-22 11:54:39
因为not
不是一个函数
, 是一个表达式
, 不管你not(1)+5
还是 not (1+5)
, 它的作用也只是将后面的结果取反而已.
例如:
>>> not 1 + 2
False
>>> not (1 + 2)
False
>>> not (1 + 2) + 1
False
>>> (not (1 + 2)) + 1
1
漂亮男人2017-06-22 11:54:39
Python 中 not
运算符的用法Boolean Operations:
not x
if x is false, then True, else False
此外,+
运算符的优先级(precedence)高于+
运算符的优先级(precedence)高于not
运算符,所以not(1) + 5
中先计算(1) + 5
, 后面的(1)+5
作为not
运算符,所以not(1) + 5
中先计算(1) + 5
, 后面的(1)+5
作为
not(-1) # False
not(-1) + 1 # True