ZeroDivisionError: Python でのゼロによる浮動小数点除算

Rana Hasnain Khan 2023年6月21日
ZeroDivisionError: Python でのゼロによる浮動小数点除算

ZeroDivisionError が発生する理由と、簡単に解決する方法を Python の例で紹介します。

Python の ZeroDivisionError: ゼロによる浮動小数点除算

結果に基づく数式を含む数式またはコードで作業している間、これは一般的なエラーです。 Python では、数値をゼロで除算しようとすると ZeroDivisionError が発生します。

数学では、任意の数を 0 で割ることは不可能です。 コードで状況が発生するたびに、数値をゼロで割ると例外がスローされます。

以下に示すように、Python を使用してこの例外をスローするプログラムを作成しましょう。

firstNum = 10
secondNum = 5
thirdNum = 7
forthNum = 5
print((firstNum + thirdNum) / (secondNum - forthNum))

出力:

Pythonのゼロ除算エラー

上記の例からわかるように、分母の減算の結果は 0 になり、エラー ZeroDivisionError が発生しました。 以下に示すように、代わりに浮動小数点数を使用して別の例をテストしてみましょう。

firstNum = 10.0
secondNum = 5.0
thirdNum = 7.0
forthNum = 5.0
print((firstNum + thirdNum) / (secondNum - forthNum))

次のエラーメッセージが表示されます。

浮動小数点数を使用したゼロ除算エラー

上記の例からわかるように、分母の結果がゼロになると、アプリケーションがクラッシュし、重要なプログラムの実行中に重要なデータが失われる可能性があります。

プログラムがクラッシュして重要な情報が失われるのを防ぐために、この種のエラーを適切に処理することが重要です。

この問題を解決するには 2つの方法があります。詳細について説明します。 最初の解決策は、if-else ステートメントを使用することです。

除算を実行するために、分母の差が常にゼロより大きいことを常に保証します。 両方の分母の差がゼロの場合、ゼロで割り切れないというメッセージが出力されます。

ソリューションのコードを以下に示します。

firstNum = 10.0
secondNum = 5.0
thirdNum = 7.0
forthNum = 5.0

nominators = firstNum + thirdNum
denominators = secondNum - forthNum
if denominators != 0:
    print((firstNum + thirdNum) / (secondNum - forthNum))
else:
    print("Cannot divide by zero.")

このコードを実行すると、次の出力が得られます。

ゼロ除算エラーの最初の解決策

上記の例からわかるように、分母の結果が 0 の場合、コードはエラーをスローする代わりに、出力したかったフレーズを出力します。 2 番目のソリューションでは、以下に示すように、try および except メソッドを使用します。

firstNum = 10.0
secondNum = 5.0
thirdNum = 7.0
forthNum = 5.0

try:
    print((firstNum + thirdNum) / (secondNum - forthNum))
except:
    print("Cannot divide by zero.")

コードは式を実行しようとします。 正常に実行されると、結果が表示されます。 そうしないと、ゼロで割ることができないというフレーズが表示されます。 次のコードの出力を以下に示します。

ゼロ除算エラー 2 番目の解決策

これらのソリューションは、エラーの原因が分母がゼロであることがわかっている場合にのみエラーを処理することに注意することが非常に重要ですが、分母がゼロである可能性があるかどうかわからない場合は、実行する前に確認することをお勧めします。 手術。

結論として、ZeroDivisionError: 浮動小数点数のゼロによる除算は、浮動小数点数をゼロで除算しようとしたときに発生する Python の一般的な例外です。

この例外は、if ステートメントと try-except ブロックを使用して処理できます。 クラッシュや誤った結果の生成を避けるために、コードでこの例外を処理する必要があります。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

関連記事 - Python Error