ZeroDivisionError: Python でのゼロによる浮動小数点除算
ZeroDivisionError
が発生する理由と、簡単に解決する方法を Python の例で紹介します。
Python の ZeroDivisionError: ゼロによる浮動小数点除算
結果に基づく数式を含む数式またはコードで作業している間、これは一般的なエラーです。 Python では、数値をゼロで除算しようとすると ZeroDivisionError
が発生します。
数学では、任意の数を 0 で割ることは不可能です。 コードで状況が発生するたびに、数値をゼロで割ると例外がスローされます。
以下に示すように、Python を使用してこの例外をスローするプログラムを作成しましょう。
firstNum = 10
secondNum = 5
thirdNum = 7
forthNum = 5
print((firstNum + thirdNum) / (secondNum - forthNum))
出力:
上記の例からわかるように、分母の減算の結果は 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.")
コードは式を実行しようとします。 正常に実行されると、結果が表示されます。 そうしないと、ゼロで割ることができないというフレーズが表示されます。 次のコードの出力を以下に示します。
これらのソリューションは、エラーの原因が分母がゼロであることがわかっている場合にのみエラーを処理することに注意することが非常に重要ですが、分母がゼロである可能性があるかどうかわからない場合は、実行する前に確認することをお勧めします。 手術。
結論として、ZeroDivisionError: 浮動小数点数のゼロによる除算
は、浮動小数点数をゼロで除算しようとしたときに発生する Python の一般的な例外です。
この例外は、if
ステートメントと try-except
ブロックを使用して処理できます。 クラッシュや誤った結果の生成を避けるために、コードでこの例外を処理する必要があります。
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
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません