Python 对数
我想在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是零吗?或者它们其中一个是负数吗?