Pythonで数値や変数を使った計算を行う際に重要なのが演算子の優先順位です。
演算子の優先順位とは、式の中で複数の演算子が混ざっている場合にどの計算を先に行うかを決めるルールのことを指します。 Pythonには演算子の優先順位が定義されており、このルールに従って計算が行われます。
初心者の方にとっては、「なぜ思った結果と違う値が出るのか?」という悩みの多くは、この優先順位を理解していないことが原因です。 今回は、演算子の優先順位を基本から解説し、サンプルコードを使って直感的に理解できるようにしています。
Pythonでは、演算子を優先順位の高い順にまとめると以下のようになります。
()
… 最も優先度が高く、括弧内の計算が最初に行われます。**
… べき乗計算を行います。+x
, -x
… 数値の符号を決定します。*
, /
, %
, //
… 掛け算、割り算、余り計算、整数除算の順で評価されます。+
, -
… 足し算・引き算は乗算・除算の後に計算されます。<
, <=
, >
, >=
, ==
, !=
… 値の大小や等しいかどうかを評価します。not
, and
, or
… 条件式の評価に使います。=
, +=
, -=
, など … 最後に代入処理が行われます。この順序を理解しておくと、複雑な計算式でも正しい結果を得ることができます。
まず、演算子の優先順位を確認するためのいくつかのサンプルコードを見てみましょう。
以下の式には加算 (+) と乗算 (*) が含まれています。 Pythonでは乗算が加算よりも優先されるため、まず 5 * 2 が計算され、その後に 3 + 10 が計算されます。 最終的な出力は 13 です。
result = 3 + 5 * 2
print(result)
括弧 () を使うことで、計算の順序を明示的に変更できます。 まず (3 + 5) が計算され 8 となり、その後 8 * 2 が計算されます。 最終的な出力は 16 です。
result = (3 + 5) * 2
print(result)
以下の式には複数の演算子が含まれています。
result = 3 + 5 * 2 ** 2 - (15 // 3)
print(result)
計算の順序を追うと以下の通りです。
1.指数 2 ** 2 → 4 2.乗算 5 * 4 → 20 3.整数除算 15 // 3 → 5 4.加算 3 + 20 → 23 5.減算 23 - 5 → 18
最終的な出力は 18 となります。
Pythonでの計算やプログラム作成では、演算子の優先順位を正しく理解することが不可欠です。 特に複雑な式や条件分岐を作る場合、優先順位を意識せずに書くとバグや間違った結果の原因になります。
優先順位の理解を深めるためには、実際にサンプルコードを動かして、計算の順序を一つ一つ確認する練習が有効です。