Python 中零的对数
Logarithm of zero in Python
我正在尝试在 Python 中计算零的对数。
from math import log
log(0)
这给我带来了一个例外。
ValueError: math domain error
我知道 log
的负数在数学上是未定义的,这就是 Python 的 log
可以引发此 ValueError
异常的原因。但是为什么它在用零值调用它时也会引发异常?它应该 return 一个 -inf
值,而且我已经看到可以用 Python (as in here).
表示无限的数字
我可以不亲自处理这个问题吗?我的意思是在做这样的事情时个人。
from math import log, inf
foo = ... # Random value.
if foo != 0: return log(foo)
else: return -inf
其实Python并没有错。零的对数也是未定义的,这是因为它是一个极限,并且-inf
只从右边开始,而不是从左边开始:
所以,不,你必须自己处理这个问题。这是错误的,但你可以这样做。像这样:log(x) if x != 0 else -inf
.
我正在尝试在 Python 中计算零的对数。
from math import log
log(0)
这给我带来了一个例外。
ValueError: math domain error
我知道 log
的负数在数学上是未定义的,这就是 Python 的 log
可以引发此 ValueError
异常的原因。但是为什么它在用零值调用它时也会引发异常?它应该 return 一个 -inf
值,而且我已经看到可以用 Python (as in here).
我可以不亲自处理这个问题吗?我的意思是在做这样的事情时个人。
from math import log, inf
foo = ... # Random value.
if foo != 0: return log(foo)
else: return -inf
其实Python并没有错。零的对数也是未定义的,这是因为它是一个极限,并且-inf
只从右边开始,而不是从左边开始:
所以,不,你必须自己处理这个问题。这是错误的,但你可以这样做。像这样:log(x) if x != 0 else -inf
.