ホーム ›
エラー解決 › Python › ZeroDivisionError
Python ERROR
Python ZeroDivisionError の原因と解決法
0で割り算を行うと発生するエラーです。空のリストで平均を計算しようとしたときによく遭遇します。
このエラーメッセージ
ZeroDivisionError: division by zero
原因
- 割る数に0が入っている
- 空のリストに対してlen()で割って平均を出そうとしている
- 計算の途中結果が0になるケースを想定していない
❌ エラーになるコード
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を出します。