【Python】演算子の優先順位について
以下の目次から各セクションにジャンプできます。
演算子の優先順位とは
Pythonでは、式を評価する際に使用される演算子には「優先順位」があります。これは、複数の演算子が含まれる式をどの順番で計算するかを決定するルールです。例えば、*
(掛け算)と+
(足し算)が同じ式に含まれる場合、掛け算が先に評価されます。
基本的な演算子の優先順位の例
以下に、Pythonでの基本的な演算子の優先順位を示す例を挙げます。
# 掛け算が足し算よりも優先
result = 2 + 3 * 4
print(result) # 出力: 14
# 括弧を使用して足し算を優先
result = (2 + 3) * 4
print(result) # 出力: 20
このように、演算子の優先順位を理解していないと、意図しない結果を得る可能性があります。
括弧の使用で優先順位を制御
Pythonでは、括弧を使用することで演算の順序を明示的に指定できます。括弧内の式は最優先で評価されるため、コードの可読性と正確性が向上します。
# 通常の優先順位
result = 10 - 4 / 2
print(result) # 出力: 8.0
# 括弧で計算順序を変更
result = (10 - 4) / 2
print(result) # 出力: 3.0
特殊な演算子の優先順位
Pythonでは、以下のような特殊な演算子も存在し、これらも優先順位に影響します。
**
(累乗)は掛け算や割り算よりも優先される。//
(整数除算)や%
(剰余)は通常の割り算と同じ優先順位。
# 累乗が先に評価
result = 2 ** 3 * 4
print(result) # 出力: 32
# 累乗の結合規則は右から左
result = 2 ** 3 ** 2
print(result) # 出力: 512
比較演算子と論理演算子の優先順位
比較演算子(<
, >
, ==
など)と論理演算子(and
, or
, not
)も、それぞれ優先順位があります。
# not は and より優先
result = not True and False
print(result) # 出力: False
# and は or より優先
result = True or True and False
print(result) # 出力: True
演算子の優先順位一覧表
以下は、Pythonの主な演算子の優先順位を高い順にまとめた表です。
**
(累乗)+x
,-x
,~x
(単項演算子)*
,/
,//
,%
(掛け算、割り算など)+
,-
(足し算、引き算)<
,<=
,>
,>=
,==
,!=
(比較演算子)not
(論理否定)and
(論理積)or
(論理和)
まとめ
Pythonの演算子の優先順位を理解することは、正確なプログラムを書くために非常に重要です。特に複雑な式を扱う場合には、括弧を適切に使用することで意図を明確にすることをお勧めします。
実際にコードを試しながら学ぶことで、優先順位のルールを自然と身につけることができます。