为什么python在评估“log(e,1)”时给出了“浮零除零”这样的错误

时间:2016-01-04 21:18:47

标签: python math logarithm

我已经定义了一个

的函数
from math import *

def func(x):

    return log(e,x)

错误很简短,你知道为什么python无法评估

func(1)

,等于ln(1),?

编辑:因为我是新来的,我发布了一个愚蠢的问题,对不起,但现在我处理了

2 个答案:

答案 0 :(得分:2)

@mike_z对他推荐的内容是正确的,

我有一个向后的论点,换句话说我想到了函数

math.log(a,b)log(a,b)

(取决于你如何强制数学模数)

好像a表示base,b表示要评估其对数的另一个操作数

但真正的方法是上面句子的反转是正确的,

坦克你们!

答案 1 :(得分:2)

这是log函数的定义。正如评论中所述,您的基数不能是1

def log(x, base=None): # real signature unknown; restored from __doc__
        """
        log(x[, base])

        Return the logarithm of x to the given base.
        If the base not specified, returns the natural logarithm (base e) of x.
        """
        pass

您可以看到以下操作: -

>>> import math
>>> 
>>> def func(x):
... 
...     return math.log(10, x)
... 
>>> print func(1)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 3, in func
ZeroDivisionError: float division by zero
>>> print func(2)
3.32192809489
>>> print func(3)
2.09590327429
>>> print func(4)
1.66096404744
>>>