基礎

Pythonの演算子|算術・比較・論理演算子の使い方

演算子は、値や変数に対して計算や比較などの操作を行うための記号です。Pythonには算術演算子、比較演算子、論理演算子など、様々な種類の演算子が用意されています。

この記事では、Pythonで頻繁に使用する演算子をカテゴリ別に詳しく解説します。

算術演算子

算術演算子は、数値に対する計算を行います。

Python
# 基本的な四則演算
print(10 + 3)   # 加算: 13
print(10 - 3)   # 減算: 7
print(10 * 3)   # 乗算: 30
print(10 / 3)   # 除算: 3.3333...

# その他の演算
print(10 // 3)  # 整数除算(切り捨て): 3
print(10 % 3)   # 剰余(余り): 1
print(2 ** 10)  # べき乗: 1024
実行結果
13
7
30
3.3333333333333335
3
1
1024

除算 / は常にfloat型の結果を返します。整数の結果が欲しい場合は //(整数除算)を使いましょう。

代入演算子

代入演算子は、変数に値を代入する際に使います。複合代入演算子を使うと、計算と代入を1つの式で行えます。

Python
x = 10

x += 5    # x = x + 5
print(x)  # 15

x -= 3    # x = x - 3
print(x)  # 12

x *= 2    # x = x * 2
print(x)  # 24

x //= 5   # x = x // 5
print(x)  # 4

x **= 3   # x = x ** 3
print(x)  # 64
実行結果
15
12
24
4
64

比較演算子

比較演算子は、2つの値を比較してTrueまたはFalseを返します。if文の条件式で頻繁に使用します。

Python
a, b = 10, 20

print(a == b)   # 等しい: False
print(a != b)   # 等しくない: True
print(a < b)    # より小さい: True
print(a > b)    # より大きい: False
print(a <= b)   # 以下: True
print(a >= b)   # 以上: False

# 文字列の比較
print("apple" == "apple")  # True
print("apple" < "banana")  # True(辞書順)
実行結果
False
True
True
False
True
False
True
True

論理演算子

論理演算子は、複数の条件を組み合わせるために使います。

Python
age = 25
income = 300000

# and(両方True)
print(age >= 20 and income >= 200000)  # True

# or(どちらかTrue)
print(age >= 30 or income >= 200000)   # True

# not(反転)
is_holiday = False
print(not is_holiday)  # True

# 組み合わせ
score = 75
print(score >= 60 and score < 80)  # True
実行結果
True
True
True
True
演算子の優先順位

演算子には優先順位があり、** > *,/,//,% > +,- > 比較演算子 > not > and > or の順で評価されます。優先順位が不明な場合は、括弧 () を使って明示的に順序を指定しましょう。

実践的な使い方

Python
# BMI計算プログラム
weight = 70  # kg
height = 1.75  # m

bmi = weight / (height ** 2)
print(f"BMI: {bmi:.1f}")

if bmi < 18.5:
    print("低体重")
elif bmi < 25.0:
    print("普通体重")
elif bmi < 30.0:
    print("肥満(1度)")
else:
    print("肥満(2度以上)")
実行結果
BMI: 22.9
普通体重
浮動小数点の比較に注意

0.1 + 0.2 == 0.3False になります。浮動小数点数には丸め誤差があるため、厳密な比較には math.isclose() を使うか、整数に変換して比較しましょう。

まとめ

  • 算術演算子: +, -, *, /, //, %, **
  • 比較演算子: ==, !=, <, >, <=, >=
  • 論理演算子: and, or, not
  • 複合代入演算子(+=, -=等)で計算と代入を同時に行える
  • 浮動小数点数の比較には丸め誤差に注意する