python中not()的命令有什么问题?

Him*_*hra 3 python operators boolean-expression

在python中使用not()有什么问题?我试过这个

    In [1]: not(1) + 1
    Out[1]: False
Run Code Online (Sandbox Code Playgroud)

它工作得很好.但在重新调整之后,

    In [2]: 1 + not(1)
    Out[2]: SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误.订单如何重要?

Mar*_*ers 8

not是一元运算符,而不是函数,所以请不要(..)在它上面使用调用符号.解析表达式时忽略括号,并且与括号not(1) + 1相同not 1 + 1.

由于优先规则,Python尝试将第二个表达式解析为:

1 (+ not) 1
Run Code Online (Sandbox Code Playgroud)

这是无效的语法.如果你真的必须使用not+,使用括号:

1 + (not 1)
Run Code Online (Sandbox Code Playgroud)

出于同样的原因,not 1 + 1首先计算1 + 1,然后应用于not结果.

  • @VivekSable:因为那不是((1)+ 1)`所以`不是2`,而'2`是一个真值,所以逆是'False`.如果你想"不"只适用于第一个`1`,你需要使用`(不是1)+ 1`.同样,`not`不是*函数*. (2认同)