Python 速習チュートリアル

Python 演算子の優先順位

1. 演算子の優先順位 (Operator Precedence)

演算子の優先順位(Operator Precedence)は、式の中で操作(Operations)が実行される順序を決定します。

1.1 括弧の優先順位

括弧 () は最も高い優先順位を持ちます。これは、括弧内の計算が最初に実行されることを意味します。

# 括弧内の計算(5 + 4)が先に行われるため、結果は 27 になります
print((5 + 4) * 3)

1.2 乗算と加算の優先順位

乗算 * は加算 + よりも高い優先順位を持っています。そのため、括弧がない場合は乗算が先に計算されます。

# 5 + (4 * 3) として計算されるため、結果は 17 になります
print(5 + 4 * 3)

2. 優先順位テーブル (Precedence Table)

以下の表は、優先順位の高いもの(一番上)から低いもの(一番下)の順に演算子を並べたものです。

演算子説明
()括弧 (Parentheses)
**べき乗 (Exponentiation)
+x, -x, ~x単項プラス、単項マイナス、ビット反転
*, /, //, %乗算、除算、切り捨て除算、剰余
+, -加算、減算
<<, >>ビットシフト
&ビット AND
^ビット XOR
==, !=, >, >=, <, <=, is, is not, in, not in比較、アイデンティティ、メンバーシップ
not論理 NOT
and論理 AND
or論理 OR

※ 同じ優先順位の演算子が並んでいる場合は、左から右へと評価されます。

3. 同等優先順位における評価順序

2つの演算子が同じ優先順位を持つ場合、式は左から右(Left-to-right)へと評価されます。

3.1 加算と減算の例

加算 + と減算 - は同じ優先順位を持っています。そのため、左側にある計算から順に実行されます。

# 左から順に (5 + 4) が計算され、その結果から 7 が引かれるため、結果は 2 になります
print(5 + 4 - 7)

実務的な開発において、演算子の優先順位を完璧に記憶しておく必要はありませんが、複雑な条件式を書く際には括弧 () を明示的に使用することを強く推奨します。これにより、意図しない計算バグを防ぐだけでなく、チームメンバーにとっても可読性の高い(Readable)コードになります。