也许这是一个非常基本的问题,但对我来说没有任何意义。
如果我这样做:
In: not(False),(not(False))
Out: (True,True)
因此,基本逻辑运算表明True Or True
始终为True
。
但是如果我这样做:
not(False)|(not(False))
Out: False
如果我将括号用于第一个条件:
In: (not(False))|(not(False))
Out: True
并且如果我使用Or而不是|:
In: not(False)or(not(False))
Out: True
是否应该像这样表现?如果是这样,为什么?
not
不是函数;是优先级低于|
的运算符。
not(False)|(not(False))
== not False | (not False) drop (...) around literal False
== not (False | (not False) add (...) implied by operator precedence
== not (False | True) evaluate ``not False``
== not True evaluate ``False | True``
== False evaluate ``not True``
[Python将and
,or
,not
用作其布尔运算符,而不是符号&&,||,!。