ホーム › エラー解決 › Python › ZeroDivisionError
Python ERROR

Python ZeroDivisionError の原因と解決法

0で割り算を行うと発生するエラーです。空のリストで平均を計算しようとしたときによく遭遇します。

このエラーメッセージ

ZeroDivisionError: division by zero

原因

❌ エラーになるコード

NG
scores = []  # 空のリスト
average = sum(scores) / len(scores)
print(average)

✅ 修正したコード

OK
scores = []
if scores:
    average = sum(scores) / len(scores)
else:
    average = 0
print(average)
▶ 修正済みコードを実行エディタで開く
progoのPython実行環境(インストール不要・登録不要)でその場で動作を確認できます。

解決のポイント

割り算の前に割る数が0でないか確認します。Pythonではリストが空かどうかをif scores:だけで判定できます(空のリストはFalse扱い)。1行で書くならaverage = sum(scores) / len(scores) if scores else 0のような条件式も使えます。

よくある質問

try-exceptで処理してもいい?
はい。try: ... except ZeroDivisionError: average = 0 のように例外処理でも対応できます。事前チェックとどちらでも構いません。
float型でもエラーになる?
1 / 0.0 もZeroDivisionErrorになります。なおstatisticsモジュールのmean()は空リストでStatisticsErrorを出します。