Python 为什么';t`not(foo)`raisesyntaxerror?

Python 为什么';t`not(foo)`raisesyntaxerror?,python,syntax,Python,Syntax,在Python中,布尔运算符是 我在文档中没有找到运算符可以用作语句或函数的地方;但这不会带来任何错误吗 >>> not(1) False 但这是真的 >>> and(1) SyntaxError: Invalid Syntax 关于(),我是否缺少一些可以让它工作的东西?工作的原因与此相同: not (True and False) 也就是说,paren充当分组运算符,而不是表示函数调用。任何一个表达式合法的地方,paren都是合法的,用于显式地将一个

在Python中,布尔运算符是

我在文档中没有找到运算符可以用作语句或函数的地方;但这不会带来任何错误吗

>>> not(1)
False
但这是真的

>>> and(1)
SyntaxError: Invalid Syntax

关于
()
,我是否缺少一些可以让它工作的东西?

工作的原因与此相同:

not (True and False)
也就是说,paren充当分组运算符,而不是表示函数调用。任何一个表达式合法的地方,paren都是合法的,用于显式地将一个完整的表达式组合在一起,可以用来覆盖其他运算符的优先级(如
(x+y)*z
,这与
x+y*z
不同,后者相当于
x+(y*z)


需要两个参数,这就是为什么
和(1)
是一个语法错误——您只指定了一个参数<代码>(x)和(y)是合法的。

您得到带有
的语法错误,因为它是一个二进制运算符,而不是因为括号:

(1) and(1)

是合法的Python语法。

参数也用于分组。你有一个由一个项目组成的组,而不是一个呼叫操作。亲密投票者:为什么?这当然是一个真正的问题,因为
not
是一个一元运算符——它作用于一个参数,这个参数在右边
是一个二进制运算符,有两个参数,一个在左边,一个在右边:
(x)和(y)
。你知道,有时候这很明显。我不知道我怎么会错过这个小新闻。