Pythonでは、ブール演算子はand, or not
ドキュメントのどこにも、演算子をステートメントまたは関数として使用できる場所は見つかりませんでした。それでも、これはエラーをスローしませんか?
>>> not(1)
False
しかし、これは
>>> and(1)
SyntaxError: Invalid Syntax
それが機能することを可能にする私が欠けているものはあり()
ますか?
Pythonでは、ブール演算子はand, or not
ドキュメントのどこにも、演算子をステートメントまたは関数として使用できる場所は見つかりませんでした。それでも、これはエラーをスローしませんか?
>>> not(1)
False
しかし、これは
>>> and(1)
SyntaxError: Invalid Syntax
それが機能することを可能にする私が欠けているものはあり()
ますか?
これは、これが機能するのと同じ理由で機能します。
not (True and False)
つまり、括弧は関数呼び出しを示すのではなく、グループ化演算子として機能します。式が有効な場合はどこでも、括弧も有効であり、1 つの式全体を明示的にグループ化するのに役立ちます。これは、他の演算子の優先順位をオーバーライドするために使用できます ( のように(x + y) * z
、これは と同じではなく、x + y * z
後者は と同等ですx + (y * z)
) 。 .
and
には 2 つの引数が必要です。これが、 が構文エラーである理由and(1)
です。引数を 1 つしか指定していません。 (x) and (y)
ただし、合法です。
and
括弧のためではなく、二項演算子であるため、 SyntaxError を取得します。
(1) and(1)
は正当な Python 構文です。