メインコンテンツへスキップ
Lesson1 / 5

算術演算子 - 計算の基本

目次

このレッスンで学ぶこと

  • 算術演算子とは何か
  • 基本的な四則演算(+, -, *, /)
  • 特殊な演算子(//, %, **)の使い方
  • 演算子の優先順位

算術演算子とは

算術演算子は、数値の計算を行うための記号です。

Pythonの算術演算子一覧

演算子名前意味結果
+加算足し算10 + 313
-減算引き算10 - 37
*乗算掛け算10 * 330
/除算割り算10 / 33.333...
//切り捨て除算割り算の商10 // 33
%剰余割り算の余り10 % 31
**べき乗累乗10 ** 31000

算術演算子の特徴

  • 数学の計算式と同じように使える
  • 整数と小数の両方で使える
  • 計算結果は新しい値として得られる
  • 変数と組み合わせて使える

簡単な例

Python
# 基本的な計算
print(5 + 3)   # 8(足し算)
print(5 - 3)   # 2(引き算)
print(5 * 3)   # 15(掛け算)
print(5 / 2)   # 2.5(割り算)

なぜ算術演算子が必要なのか?

プログラミングでは、数値計算が頻繁に必要になります。

Python
# 価格計算の例
price = 1000
quantity = 3
total = price * quantity
print(f"合計: {total}円")  # 合計: 3000円

算術演算子を使うことで、様々な計算を簡単に実行できます。

💡 豆知識: 演算子(オペレーター)という用語は、数学の「演算」から来ています。プログラミングでは、値を操作するための記号を演算子と呼びます。


基本的な算術演算子

加算(+)

機能: 2つの数値を足し合わせます。

Python
# 整数の加算
result = 10 + 5
print(result)  # 15

# 小数の加算
price1 = 100.5
price2 = 200.3
total = price1 + price2
print(total)  # 300.8

# 複数の値を加算
sum_value = 1 + 2 + 3 + 4 + 5
print(sum_value)  # 15

用途: 合計計算、数値の増加


減算(-)

機能: 左の値から右の値を引きます。

Python
# 基本的な減算
result = 10 - 3
print(result)  # 7

# 在庫の減少
stock = 50
sold = 15
remaining = stock - sold
print(f"残り: {remaining}個")  # 残り: 35個

# 負の数
result = 5 - 10
print(result)  # -5

用途: 差の計算、在庫管理、残高計算


乗算(*)

機能: 2つの数値を掛け合わせます。

Python
# 基本的な乗算
result = 5 * 3
print(result)  # 15

# 価格計算
price = 500
quantity = 4
total = price * quantity
print(f"合計: {total}円")  # 合計: 2000円

# 小数の乗算
result = 2.5 * 4
print(result)  # 10.0

用途: 合計金額の計算、面積の計算


除算(/)

機能: 左の値を右の値で割ります。結果は常に小数(float)になります。

Python
# 基本的な除算
result = 10 / 2
print(result)  # 5.0(整数で割り切れても小数になる)

# 割り切れない場合
result = 10 / 3
print(result)  # 3.3333333333333335

# 平均の計算
total = 100
count = 4
average = total / count
print(f"平均: {average}")  # 平均: 25.0

注意: 除算の結果は常にfloat型になります。

用途: 平均計算、比率計算


特殊な算術演算子

整数除算(//)

機能: 割り算の結果の整数部分のみを返します(小数点以下を切り捨て)。

Python
# 整数除算
result = 10 // 3
print(result)  # 3(3.333... の整数部分)

# 通常の除算と比較
print(10 / 3)   # 3.3333333333333335
print(10 // 3)  # 3

# ページ数の計算
items = 25
items_per_page = 10
pages = items // items_per_page
print(f"ページ数: {pages}")  # ページ数: 2

用途: ページ分割、商品の箱詰め計算

書き方: 値1 // 値2


剰余(%)

機能: 割り算の余りを返します。

Python
# 余りの計算
result = 10 % 3
print(result)  # 1(10 ÷ 3 = 3 余り 1)

# 偶数・奇数の判定
number = 7
if number % 2 == 0:
    print("偶数")
else:
    print("奇数")  # 奇数

# 周期的な処理
for i in range(10):
    if i % 3 == 0:
        print(f"{i}は3の倍数")

用途: 偶数奇数判定、周期的な処理、余りの計算

書き方: 値1 % 値2


べき乗(**)

機能: 左の値を右の値で累乗します(べき乗)。

Python
# 2の3乗
result = 2 ** 3
print(result)  # 8(2 × 2 × 2)

# 平方(2乗)
result = 5 ** 2
print(result)  # 25

# 立方(3乗)
result = 3 ** 3
print(result)  # 27

# 平方根(ルート)
result = 9 ** 0.5
print(result)  # 3.0(√9 = 3)

用途: べき乗計算、面積・体積計算、指数関数

書き方: 基数 ** 指数


演算子の優先順位

優先順位のルール

Python
# 優先順位: ** > *, /, //, % > +, -
result = 2 + 3 * 4
print(result)  # 14(3 * 4 が先に計算される)

# 括弧で優先順位を変更
result = (2 + 3) * 4
print(result)  # 20

# 複雑な計算
result = 10 + 5 * 2 ** 3
print(result)  # 50(2**3=8, 5*8=40, 10+40=50)

# 括弧で明示
result = 10 + (5 * (2 ** 3))
print(result)  # 50(同じ結果だが読みやすい)

優先順位(高い順):

  1. ** (べき乗)
  2. *, /, //, % (乗除算)
  3. +, - (加減算)

推奨: 複雑な計算では括弧を使って明示的にする


具体例

例1: 消費税込み価格の計算

Python
price = 1000
tax_rate = 0.1

# 税込価格
total = price + (price * tax_rate)
print(f"税込価格: {total}円")  # 税込価格: 1100.0円

# または
total = price * (1 + tax_rate)
print(f"税込価格: {total}円")  # 税込価格: 1100.0円

例2: 平均点の計算

Python
score1 = 85
score2 = 92
score3 = 78

# 平均
average = (score1 + score2 + score3) / 3
print(f"平均点: {average:.1f}点")  # 平均点: 85.0点

例3: 温度変換(摂氏→華氏)

Python
celsius = 25

# 華氏 = 摂氏 × 9/5 + 32
fahrenheit = celsius * 9 / 5 + 32
print(f"{celsius}℃ = {fahrenheit}℉")  # 25℃ = 77.0℉

例4: 時間の計算

Python
total_minutes = 125

# 時間と分に分解
hours = total_minutes // 60
minutes = total_minutes % 60

print(f"{total_minutes}分 = {hours}時間{minutes}分")
# 125分 = 2時間5分

例5: 複利計算

Python
principal = 100000  # 元金
rate = 0.03        # 年利3%
years = 5          # 5年間

# 複利計算
amount = principal * (1 + rate) ** years
print(f"{years}年後: {int(amount)}円")  # 5年後: 115927円

例6: BMI(体格指数)の計算

Python
weight = 65  # kg
height = 1.7  # m

# BMI = 体重 / (身長の2乗)
bmi = weight / height ** 2
print(f"BMI: {bmi:.1f}")  # BMI: 22.5

# 判定
if bmi < 18.5:
    print("低体重")
elif bmi < 25:
    print("普通体重")
else:
    print("肥満")

よくある間違い

間違い1: ゼロ除算

Python
result = 10 / 0  # ZeroDivisionError: division by zero

対策:

Python
divisor = 0
if divisor != 0:
    result = 10 / divisor
    print(result)
else:
    print("0で割ることはできません")

間違い2: 整数除算と通常除算の混同

Python
# 整数除算を使うべき場面
items = 25
boxes = items / 10  # 2.5(箱の数に小数?)
print(f"必要な箱: {boxes}個")

# 正しくは
boxes = items // 10 + (1 if items % 10 > 0 else 0)
print(f"必要な箱: {boxes}個")  # 3個

間違い3: 演算子の優先順位

Python
# 間違った計算
result = 100 - 50 * 2
print(result)  # 0(期待: 100)

# 意図: (100 - 50) * 2 = 100
# 実際: 100 - (50 * 2) = 0

# 正しく
result = (100 - 50) * 2
print(result)  # 100

間違い4: べき乗の記号

Python
# 間違い: ^ はPythonでべき乗ではない
result = 2 ^ 3  # ビット演算のXORになる
print(result)   # 1(2のべき乗3ではない)

# 正しい
result = 2 ** 3
print(result)  # 8

間違い5: 小数の精度問題

Python
result = 0.1 + 0.2
print(result)  # 0.30000000000000004(誤差が出る)

# 対策: round()で丸める
result = round(0.1 + 0.2, 2)
print(result)  # 0.3

練習問題

問題1(基礎)⭐☆☆

りんごが1個150円です。5個買った場合の合計金額を計算してください。

💡 ヒント

乗算(*)を使います。

✅ 解答例
Python
price = 150
quantity = 5

total = price * quantity
print(f"合計: {total}円")

実行結果:

合計: 750円

解説: 単価 × 数量 で合計金額を計算できます。


問題2(基礎)⭐☆☆

37個のクッキーを5人で分けます。1人何個ずつもらえて、何個余りますか?

💡 ヒント
  • 整数除算(//)で1人あたりの個数
  • 剰余(%)で余りの個数
✅ 解答例
Python
cookies = 37
people = 5

per_person = cookies // people
remainder = cookies % people

print(f"1人あたり: {per_person}個")
print(f"余り: {remainder}個")

実行結果:

1人あたり: 7個
余り: 2個

解説: 37 ÷ 5 = 7 余り 2 となります。


問題3(応用)⭐⭐☆

長方形の面積と周囲の長さを計算してください。縦が5cm、横が8cmとします。

💡 ヒント
  • 面積 = 縦 × 横
  • 周囲 = (縦 + 横) × 2
✅ 解答例
Python
height = 5
width = 8

# 面積
area = height * width

# 周囲の長さ
perimeter = (height + width) * 2

print(f"面積: {area}cm²")
print(f"周囲: {perimeter}cm")

実行結果:

面積: 40cm²
周囲: 26cm

解説: 面積は縦×横、周囲は全ての辺の長さの合計です。


まとめ

このレッスンでは、算術演算子の種類と使い分けを学びました。

  • +, -, *, / の四則演算で基本計算を行えるようになりました。
  • //, %, ** を使って、商・余り・べき乗の計算ができます。
  • 演算子の優先順位を理解し、必要に応じて括弧で評価順を制御できます。
  • / の結果は float になることや、0除算がエラーになることを確認しました。
  • 計算式を段階的に書くことで、読みやすく保守しやすいコードにできると理解しました。