演算子の優先度についてわかりやすく解説

計算を行ったりif文の条件を付けるために演算子を使用します。
これらの演算子には優先度があります。

なぜ、優先度があるのかというと複数の演算子を使用して条件文を作成する際にどの順序で実行されるか不明確になります。そこで、演算子に順序を付けて正確に制御します。

演算子の優先度は下のようになります。

演算子説明優先度
()かっこ1
**べき乗2
+x,-x,~x単項演算子3
*,/,//,%掛け算、割り算系4
+,-足し算、引き算5
<<,>>ビットシフト6
&ビット演算子AND7
^ビット演算子XOR8
`ビット演算子OR9
<,<=,>,>=,==,!=比較演算子10
not論理演算子not11
and論理演算子and12
or論理演算子or13

優先度の値が小さい方が優先度が高くなっています。

例えば、掛け算・割り算は足し算・引き算より優先されます。数学でも掛け算・割り算は足し算・引き算ようにプログラムでも優先されます。

a = 1
b = 2
c = 3

total = a + b * c
print(total)

このプログラムであれば掛け算が優先されるのでまず、b×cが実行されその後にaが足し算されます。結果は

7

となります。次に()を使ったプログラムで実行すると

a = 1
b = 2
c = 3

total = (a + b) * c
print(total)

このプログラムでは()が最も優先度が高いので()から実行されます。()の中にあるa+bが計算されその合計がcと掛け算されます。結果は

9

となります。

このように、演算子には優先度があり、この優先度を守らないと希望する結果と異なる結果になる可能性があります。

コメント

タイトルとURLをコピーしました