Python Languageオペレータの優先順位


前書き

Python演算子には優先順位が設定されているため、あいまいな式で最初に評価される演算子が決まります。たとえば、式3 * 2 + 7では、最初の3が2で乗算され、結果が7に加算されて13になります。*は+よりも高い優先順位を持つため、逆の評価はされません。

以下は、優先順位による演算子のリストと、それらが(通常)行うことの簡単な説明です。

備考

Pythonのドキュメントから:

次の表は、最も低い優先順位(最小のバインディング)から最も高い優先順位(ほとんどのバインディング)まで、Pythonの演算子の優先順位をまとめたものです。同じボックス内の演算子は同じ優先順位を持ちます。構文が明示的に与えられていない限り、演算子はバイナリです。同じボックスグループ内の演算子は、左から右への優先順位と連鎖がすべて同じで、右から左にグループ化された累乗を含むテストを含めて、左から右への演算子です。

オペレーター説明
ラムダラムダ式
if - else 条件式
またはブールOR
そしてブールAND
xでないブールNOT
<、<>、> =、<>、!=、== メンバーシップテストとアイデンティティテストを含む比較
| ビット単位OR
^ ビット単位XOR
そして、 ビット単位AND
<<、>> シフト
+、 - 足し算と引き算
*、/、//、% 乗算、除算、剰余[8]
+ x、-x、〜x 正、負、ビットNOT
** 指数関数[9]
x [index]、x [index:index]、x(arguments ...)、x.attribute サブスクリプション、スライシング、コール、属性参照
(式...)、[式...]、{キー:値...}、式... バインディングまたはタプル表示、リスト表示、辞書表示、文字列変換

オペレータの優先順位 関連する例