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)コードになります。