Python 对数

4 投票
4 回答
22498 浏览
提问于 2025-04-15 12:05

我想在Python中计算一个整数的以10为底的对数,但我遇到了一个错误,提示是“数学域错误”。

我的代码是这样的:
w=math.log10(q*q1)/math.log10(2)

其中q1和q2都是整数。

对了,q1有时候是0。

4 个回答

1

math.log10(0) 的结果是负无穷大。
你可以查看这个链接了解更多信息:http://en.wikipedia.org/wiki/Logarithm

11

你只能对正数计算对数。如果你试图对负数或零计算对数,Python会报错,提示“数学领域错误”。

顺便说一下:看起来你实际上是想计算以2为底的对数。你可以使用 math.log 来做到这一点:

w=math.log(q*q1, 2)

第二个参数是可选的,表示底数。如果你不提供,它默认是e(也就是自然对数)。

9

q或者q1是零吗?或者它们其中一个是负数吗?

撰写回答