Python算術演算子完全ガイド – 基本から応用まで徹底解説(四則演算、べき乗、リスト・文字列の結合など)
算術演算子とは?
Python の算術演算子は、数値に対して数学的な計算を行うための記号です。加算、減算、乗算、除算などの基本的な演算から、べき乗や剰余演算まで、様々な計算処理を簡潔に記述できます。
基本的な算術演算子一覧
1. 加算(+)
# 基本的な加算
result = 5 + 3
print(result) # 8
# 浮動小数点数の加算
result = 2.5 + 1.3
print(result) # 3.8
2. 減算(-)
# 基本的な減算
result = 10 - 4
print(result) # 6
# 負数の生成
result = -5
print(result) # -5
3. 乗算(*)
# 基本的な乗算
result = 6 * 7
print(result) # 42
# 文字列の繰り返し
result = "Hello" * 3
print(result) # HelloHelloHello
4. 除算(/)
# 通常の除算(浮動小数点結果)
result = 15 / 4
print(result) # 3.75
# 整数同士でも浮動小数点になる
result = 10 / 5
print(result) # 2.0
5. 整数除算(//)
# 整数部分のみを取得
result = 15 // 4
print(result) # 3
# 負数での整数除算
result = -15 // 4
print(result) # -4
6. 剰余(%)
# 余りを求める
result = 15 % 4
print(result) # 3
# 偶数・奇数の判定
number = 7
if number % 2 == 0:
print("偶数")
else:
print("奇数") # 奇数
7. べき乗(**)
# 基本的なべき乗
result = 2 ** 3
print(result) # 8
# 平方根の計算
result = 16 ** 0.5
print(result) # 4.0
演算子の優先順位
1. 優先順位の順番
# 演算子の優先順位
result = 2 + 3 * 4
print(result) # 14 (3*4が先に計算される)
# 括弧で優先順位を変更
result = (2 + 3) * 4
print(result) # 20
2. 複雑な計算例
# 複数の演算子を含む計算
result = 2 ** 3 + 10 // 3 - 1
print(result) # 10 (8 + 3 - 1)
# 括弧を使った明確な記述
result = (2 ** 3) + (10 // 3) - 1
print(result) # 10
複合代入演算子
1. 基本的な複合代入
# 加算代入
x = 5
x += 3
print(x) # 8
# 乗算代入
y = 4
y *= 2
print(y) # 8
2. 全ての複合代入演算子
# 各種複合代入演算子
a = 10
a -= 3 # a = a - 3
print(a) # 7
b = 6
b *= 4 # b = b * 4
print(b) # 24
c = 20
c //= 6 # c = c // 6
print(c) # 3
d = 17
d %= 5 # d = d % 5
print(d) # 2
e = 2
e **= 4 # e = e ** 4
print(e) # 16
異なるデータ型での演算
1. 整数と浮動小数点数
# 自動的に浮動小数点数に変換
result = 5 + 2.5
print(result) # 7.5
print(type(result)) # <class 'float'>
# 除算は常に浮動小数点数
result = 10 / 2
print(type(result)) # <class 'float'>
2. 文字列との演算
# 文字列の連結
greeting = "Hello" + " " + "World"
print(greeting) # Hello World
# 文字列の繰り返し
pattern = "-" * 20
print(pattern) # --------------------
3. リストとの演算
# リストの連結
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = list1 + list2
print(combined) # [1, 2, 3, 4, 5, 6]
# リストの繰り返し
repeated = [0] * 5
print(repeated) # [0, 0, 0, 0, 0]
実践的な使用例
1. 温度変換
def celsius_to_fahrenheit(celsius):
return celsius * 9 / 5 + 32
def fahrenheit_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5 / 9
# 使用例
temp_c = 25
temp_f = celsius_to_fahrenheit(temp_c)
print(f"{temp_c}°C = {temp_f}°F") # 25°C = 77.0°F
2. 消費税計算
def calculate_tax(price, tax_rate=0.1):
tax = price * tax_rate
total = price + tax
return total
# 使用例
price = 1000
total = calculate_tax(price)
print(f"税込み価格: {total}円") # 税込み価格: 1100.0円
3. BMI計算
def calculate_bmi(weight, height):
bmi = weight / (height ** 2)
return round(bmi, 2)
# 使用例
weight = 70 # kg
height = 1.75 # m
bmi = calculate_bmi(weight, height)
print(f"BMI: {bmi}") # BMI: 22.86
数学的な応用例
1. 複利計算
def compound_interest(principal, rate, time):
amount = principal * (1 + rate) ** time
return round(amount, 2)
# 使用例
principal = 100000 # 元本
rate = 0.05 # 年利5%
time = 10 # 10年
result = compound_interest(principal, rate, time)
print(f"10年後: {result}円") # 10年後: 162889.46円
2. 素数判定
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
# 使用例
for num in range(2, 20):
if is_prime(num):
print(f"{num}は素数")
3. フィボナッチ数列
def fibonacci(n):
if n <= 1:
return n
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b
# 使用例
for i in range(10):
print(fibonacci(i), end=" ")
# 0 1 1 2 3 5 8 13 21 34
エラーハンドリング
1. ゼロ除算エラー
def safe_divide(a, b):
try:
return a / b
except ZeroDivisionError:
return "ゼロで割ることはできません"
print(safe_divide(10, 2)) # 5.0
print(safe_divide(10, 0)) # ゼロで割ることはできません
2. 型エラーの処理
def safe_add(a, b):
try:
return a + b
except TypeError:
return f"型が対応していません: {type(a)}, {type(b)}"
print(safe_add(5, 3)) # 8
print(safe_add("hello", 5)) # 型が対応していません: <class 'str'>, <class 'int'>
パフォーマンスの考慮事項
1. 演算速度の比較
import timeit
# 乗算 vs べき乗(小さい値の場合)
time_mul = timeit.timeit('x * x', setup='x = 5', number=1000000)
time_pow = timeit.timeit('x ** 2', setup='x = 5', number=1000000)
print(f"乗算: {time_mul:.6f}秒")
print(f"べき乗: {time_pow:.6f}秒")
2. 大きな数値の計算
# 大きな整数の計算もサポート
big_number = 10 ** 100
result = big_number * 2
print(f"桁数: {len(str(result))}") # 101桁の数値
便利なテクニック
1. 値の交換
# 算術演算子を使った値の交換
a, b = 5, 10
a, b = b, a
print(f"a={a}, b={b}") # a=10, b=5
2. 数値の桁数取得
def count_digits(n):
if n == 0:
return 1
count = 0
n = abs(n)
while n > 0:
n //= 10
count += 1
return count
print(count_digits(12345)) # 5
3. 平均値の計算
def calculate_average(numbers):
if not numbers:
return 0
return sum(numbers) / len(numbers)
scores = [85, 92, 78, 96, 88]
avg = calculate_average(scores)
print(f"平均点: {avg}") # 平均点: 87.8
よくある間違いと対処法
1. 整数除算の誤解
# Python 2 との違いに注意
result1 = 7 / 2 # 3.5 (Python 3)
result2 = 7 // 2 # 3 (整数除算)
print(f"通常の除算: {result1}")
print(f"整数除算: {result2}")
2. べき乗演算子の優先順位
# 演算子の優先順位に注意
result1 = -2 ** 2 # -4 (-(2**2))
result2 = (-2) ** 2 # 4
print(f"結果1: {result1}")
print(f"結果2: {result2}")
3. 浮動小数点の精度
# 浮動小数点の精度問題
result = 0.1 + 0.2
print(result) # 0.30000000000000004
# 対処法: roundを使用
result = round(0.1 + 0.2, 2)
print(result) # 0.3
まとめ
Python の算術演算子は、プログラミングの基礎となる重要な要素です。主なポイント:
- 基本演算子:
+,-,*,/,//,%,**を適切に使い分ける - 優先順位: 括弧を使って明確な計算順序を示す
- データ型: 異なる型での演算結果を理解する
- エラー処理: ゼロ除算や型エラーに備える
- パフォーマンス: 大量計算時は効率的な方法を選択する
これらの演算子を適切に使いこなすことで、効率的で読みやすいPythonコードが書けるようになります。



