Python-Mathematikdomänenfehler in der math.log-Funktion
Der ValueError
wird in Python ausgelöst, wenn die Funktion ein gültiges Argument erhält, aber es ist ein unpassender Wert. Wenn Sie beispielsweise der Funktion sqrt()
eine negative Zahl zuweisen, gibt sie ValueError
zurück.
Wenn der angegebene Wert 0 oder eine negative Zahl in der Funktion math.log()
ist, wird ValueError
ausgelöst. In diesem Tutorial lernen Sie, wie Sie ValueError: math domain error
in Python lösen.
Korrigieren Sie den ValueError: math domain error
in der math.log
-Funktion mit Python
Die Funktion math.log()
berechnet den natürlichen Logarithmus einer Zahl oder den Logarithmus einer Zahl zur Basis. Die Syntax von math.log()
ist wie folgt:
math.log(x, base)
Dabei ist x
ein erforderlicher Wert, für den der Logarithmus berechnet wird, während Basis
ein optionaler Parameter ist. Nach dem Import des Moduls math
können wir die Funktion math.log()
verwenden.
Wenn Sie eine negative Zahl mit einem Nullwert an die Funktion math.log()
übergeben, gibt sie ValueError
zurück. Das liegt daran, dass die Logarithmen solcher Zahlen mathematisch undefiniert sind.
import math
print(math.log(-2))
Ausgang:
Traceback (most recent call last):
File "c:\Users\rhntm\myscript.py", line 2, in <module>
print(math.log(-2))
ValueError: math domain error
Wir können diesen Fehler beheben, indem wir einen gültigen Eingabewert an die Funktion math.log()
übergeben.
import math
print(math.log(2))
Ausgang:
0.6931471805599453
Sie können das Modul decimal
verwenden, um einen Wert nahe Null an die Funktion math.log()
zu übergeben. Die Methode ln
einer Klasse Decimal
berechnet den natürlichen Logarithmus eines Dezimalwerts.
import math
import decimal
num = decimal.Decimal("1E-1024")
print(math.log(num))
Ausgang:
Traceback (most recent call last):
File "c:\Users\rhntm\myscript.py", line 5, in <module>
print(math.log(num))
ValueError: math domain error
Verwenden wir nun die Methode Decimal
ln()
.
from decimal import Decimal
num = Decimal("1E-1024")
print(num.ln())
Ausgang:
-2357.847135225902780434423250
Jetzt kennen Sie die Gründe für ValueError: math domain error
in Pythons math.log()
-Funktion. Der ValueError
tritt auf, wenn Sie einen ungültigen Eingabewert in der Funktion verwenden, was behoben werden kann, indem Sie der Funktion einen gültigen Wert übergeben.
Verwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung