-1

Pythonでは、ブール演算子はand, or not

ドキュメントのどこにも、演算子をステートメントまたは関数として使用できる場所は見つかりませんでした。それでも、これはエラーをスローしませんか?

>>> not(1)
False

しかし、これは

>>> and(1)
SyntaxError: Invalid Syntax

それが機能することを可能にする私が欠けているものはあり()ますか?

4

2 に答える 2

6

これは、これが機能するのと同じ理由で機能します。

not (True and False)

つまり、括弧は関数呼び出しを示すのではなく、グループ化演算子として機能します。式が有効な場合はどこでも、括弧も有効であり、1 つの式全体を明示的にグループ化するのに役立ちます。これは、他の演算子の優先順位をオーバーライドするために使用できます ( のように(x + y) * z、これは と同じではなく、x + y * z後者は と同等ですx + (y * z)) 。 .

andには 2 つの引数が必要です。これが、 が構文エラーである理由and(1)です。引数を 1 つしか指定していません。 (x) and (y)ただし、合法です

于 2012-08-01T01:00:29.537 に答える
3

and括弧のためではなく、二項演算子であるため、 SyntaxError を取得します。

(1) and(1)

は正当な Python 構文です。

于 2012-08-01T01:02:08.690 に答える