用Python计算对数

时间:2012-03-27 04:16:12

标签: python logarithm

我正在尝试使用python (math.log(x,[base])的数学模块来计算对数,但是当我使用float(raw_input)作为x和base值时,它会给出错误ZeroDivisionError: float division by zero。< / p>

x = 9.0
base = 3.0

2 个答案:

答案 0 :(得分:7)

废话,它运作得很好

>>> import math
>>> x=float(raw_input())
9.0
>>> base=float(raw_input())
3.0
>>> math.log(x, base)
2.0

为什么不向您展示如何重现问题? wim非常正确 - 1的基数会给出错误

>>> base=float(raw_input())
1.0
>>> math.log(x, base)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: float division by zero

另一方面 - 如果x<=0您收到“数学域错误”

>>> x=float(raw_input())
0
>>> math.log(x, base)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error

答案 1 :(得分:0)

你应该避免x&lt; = 0,因为它没有定义!