ZeroDivisionError: division by zero

Last Updated on 2025年7月28日

Pythonでよく遭遇するエラーの一つが ZeroDivisionError: division by zero です。このエラーは、その名の通り「0で割ろうとした」時に発生します。一見単純に見えるエラーですが、意図せず発生するケースもあり、初心者だけでなく経験者でも注意が必要です。

目次

概要

このエラーは、Pythonの数値演算において、除算(割り算)の除数が0である場合に発生します。数値的に0で割ることは定義されておらず、プログラム実行時に例外として報告されます。

エラー内容

次のようなコードを実行すると、ZeroDivisionErrorが発生します。

実行結果は以下の通りです。

原因

このエラーの原因は明確で、**割り算の分母(除数)がゼロ**であることにあります。Pythonではゼロによる除算は数学的に無効であるため、プログラム実行時にエラーを発生させて処理を中断します。

以下のようなケースでも発生します:

  • ユーザーの入力値が0である場合
  • 計算結果や取得したデータが0だった場合
  • 整数除算(//)や剰余(%)でも同様に発生

対処法

ゼロで割ってしまうような状況を事前にチェックすることで、エラーの発生を防ぐことができます。以下にいくつかの対策を示します。

1. 条件分岐で除数が0か確認する

2. try-exceptで例外処理を行う

3. 関数化して安全に除算する

4. 入力値をチェックする

補足

浮動小数点数との違い

浮動小数点数(float)では、0.0で割ってもエラーになる場合があります。

また、NumPyなどのライブラリでは挙動が異なる場合もあり、infnanが返るケースもあります。

整数の切り捨て除算(//)も注意

まとめ

ZeroDivisionErrorはPythonにおける基本的なエラーでありながら、意外と見落としやすい場面でも発生します。特に、ユーザー入力や外部データを使う際は注意が必要です。

安全にプログラムを実行するためには、次のポイントを意識しましょう:

  • 割り算の前にゼロチェックを行う
  • try-except構文でエラーをキャッチする
  • 例外の内容をログやメッセージに出力して把握する

エラーは回避できるようになると、プログラムの安定性が一気に向上します。是非、今回の内容を自分のコードにも取り入れてみてください。