MeWrite Docs

ZeroDivisionError: division by zero

0で除算しようとした場合に発生するエラー

概要

ZeroDivisionErrorは、数値を0で割ろうとした場合に発生します。ユーザー入力やデータ処理で発生しやすいエラーです。

エラーメッセージ

ZeroDivisionError: division by zero
ZeroDivisionError: integer division or modulo by zero

原因

  1. 直接0で除算: 変数の値が0になっている
  2. 空のリスト: len()が0のリストで平均を計算
  3. ユーザー入力: 0が入力された

解決策

1. 事前チェック

1
2
3
4
def safe_divide(a, b):
    if b == 0:
        return None  # または適切なデフォルト値
    return a / b

2. try-exceptでハンドリング

1
2
3
4
try:
    result = a / b
except ZeroDivisionError:
    result = 0  # または適切なデフォルト値

3. 平均計算の安全な実装

1
2
3
4
def safe_average(numbers):
    if not numbers:
        return 0
    return sum(numbers) / len(numbers)

4. 条件式で簡潔に

1
result = a / b if b != 0 else 0

5. mathモジュールのinf活用

1
2
3
4
5
6
import math

def divide_with_inf(a, b):
    if b == 0:
        return math.inf if a > 0 else -math.inf if a < 0 else math.nan
    return a / b

Python の他のエラー

最終更新: 2025-12-09