>>> 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)高于+运算符的优先级(precedence)高于not运算符,所以not(1) + 5中先计算(1) + 5, 后面的(1)+5作为not运算符,所以not(1) + 5中先计算(1) + 5, 后面的(1)+5作为
+
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)高于+
运算符的优先级(precedence)高于not
运算符,所以not(1) + 5
中先计算(1) + 5
, 后面的(1)+5
作为not
运算符,所以not(1) + 5
中先计算(1) + 5
, 后面的(1)+5
作为雷雷