我试图在Python中做一个0的对数。
from math import log
log(0)
这让我产生了一个例外。
ValueError: math domain error
我知道负数的log
在数学上是未定义的,这就是为什么Python的log
可以引发这个ValueError
异常。但是为什么用零值调用它时也会引发异常?它应该返回一个-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
。相关问题 更多 >
编程相关推荐