Skip to main content
 首页 » 编程设计

python之Python 中零的对数

2025年05月04日13zhenyulu

我正在尝试在 Python 中计算零的对数。

from math import log 
log(0) 

这给我带来了一个异常(exception)。

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。