sec01 - 計算の順序

Pythonの四則演算は、算数の授業で習ったように順番が決まっています。例えば、次のようなルールを学習したかと思います。

  1. [原則] 左から順番に計算する
  2. 加算・減算よりも乗算・除算を先に計算する
  3. 丸カッコで囲った部分を先に計算する
  4. 加算・乗算は順番を変えることができる
    1. "5 - 3"を"5 + (-3)"とみなして、"(-3) + 5"つまり"-3 + 5"にすることができる
    2. "5 * -3"を"-3 * 5"にすることができる

Pythonでも同じような計算順序になりますので、確認してみましょう。

加算・減算・乗算・除算の順序

次のコードを実行してみましょう。

result1 = 5 + 4 * 2
print(result1)

result2 = 5 / 4 * 2
print(result2)

まず、"5 + 4 * 2"から解説します。この計算式の中には加算乗算が含まれています。この場合は乗算が優先されます。ですので、最初に"4 * 2"を計算し(計算結果は"8")、次に"5 + 8"を行います。result1変数の出力結果は"13"になります。

次に、"5 / 4 * 2"ですが、乗算・除算のみで構成されている計算式の場合は、左から順に計算します。ですので先に"5 / 4"を計算し(計算結果は"1.25")、次に"1.25 * 2"を行います。result2変数の出力結果は"2.5"になります。

優先順序を明示する

Pythonは算数・数学と同じように、丸カッコで囲った中の計算を優先します。次のコードを実行してみましょう。

result3 = (5 + 4) * 2
print(result3)

result4 = 5 / (4 * 2)
print(result4)

1行目の計算式"(5 + 4) * 2"の"5 + 4"の部分が丸カッコで囲われています。この場合は、丸カッコの中の計算を先に行います。ですので、最初に"5 + 4"を計算し(計算結果は"9")、次に"9 * 2"を行います。result3変数の出力結果は"18"になります。

次に、"5 / (4 * 2)"ですが、"4 * 2"の部分が丸カッコで囲われています。ですので先に"4 * 2"を計算し(計算結果は"8")、次に"5 / 8"を行います。result4変数の出力結果は"0.625"になります。

Pythonの各演算子の優先順位

Pythonの各演算子(丸カッコなどを含む)の優先順位は、公式ドキュメントにまとめられています。

[Python公式ドキュメント] 6. 式 (expression) > 6.17. 演算子の優先順位

リンク先には、各演算子の優先順位が表でまとめられており、表の上から優先度が高くなっています。これまで習ってきた演算子の中だと、丸カッコが一番優先度が高いことになります。そこから下に辿っていくと、『べき乗』>『乗算、除算、切り捨て除算、剰余』>『加算および減算』の順になっています。

Pythonの計算の優先順位が分からなくなってしまったら、公式ドキュメントで確認しましょう。

おすすめの記事