什么';python中not()的顺序有什么问题?
在python中使用not()有什么问题?。我试过这个什么';python中not()的顺序有什么问题?,python,operators,boolean-expression,Python,Operators,Boolean Expression,在python中使用not()有什么问题?。我试过这个 In [1]: not(1) + 1 Out[1]: False 而且效果很好。但经过调整, In [2]: 1 + not(1) Out[2]: SyntaxError: invalid syntax 它给出了一个错误。订单如何重要?not是一个函数,不是一个函数,因此请不要在其上使用(…)调用符号。解析表达式时忽略括号,not(1)+1与not 1+1相同 根据优先规则,Python尝试将第二个表达式
In [1]: not(1) + 1
Out[1]: False
而且效果很好。但经过调整,
In [2]: 1 + not(1)
Out[2]: SyntaxError: invalid syntax
它给出了一个错误。订单如何重要?not
是一个函数,不是一个函数,因此请不要在其上使用(…)
调用符号。解析表达式时忽略括号,not(1)+1
与not 1+1
相同
根据优先规则,Python尝试将第二个表达式解析为:
1 (+ not) 1
这是无效的语法。如果确实必须在+
之后使用而不是,请使用括号:
1 + (not 1)
出于同样的原因,not1+1
首先计算1+1
,然后将not
应用于结果。not
不是一个函数。False+1
返回False
的原因是bool
是int
的子类,你能告诉我为什么吗,True
等于1,False
等于0。与所有数字一样,当在算术中使用时,它们被强制为更复杂的类型(与1.0+1
给出2.0
)。@VivekSable:andFalse+1
返回1
,而不是False
。是的,False+1
返回1
和not(1)+1
returnFalse
@VivekSable:因为那是而不是((1)+1)
,所以不是2
,而2
是真值,所以反方向是False
。如果希望not
仅应用于第一个1
,则需要使用(not 1)+1
。同样,not
不是一个函数。