Python日志,值错误:数学域错误

时间:2019-02-02 17:09:39

标签: python-3.x math python-module logarithm

我正在用python学习数学,当我尝试将此代码记录下来时,它给了我这个错误,请帮忙?

import math

n2 = [0,1,2,3]
for i in range(1,3):
  x = math.log2(n2[i])
n2 += x
print(n2)

它给我一个值错误:“ ValueError:数学域错误”

2 个答案:

答案 0 :(得分:0)

此代码在发布时会引发另一个错误:TypeError: 'float' object is not iterable

但是,此代码再现了您说得到的错误:

import math

n2 = [0, 1, 2, 3]
for i in n2:
    x = math.log2(i)

您正试图用math.log2来调用0,这毫无意义。如错误所述,0不在任何log函数的域中。对于任何x,没有满足k x = 0的{​​{1}}。

答案 1 :(得分:-1)

您将n2定义为列表。但是快要结束了

n2 += x

您正在尝试将浮点值x添加到列表n2。这会导致错误

'float' object is not iterable

请注意,不是您在问题中指出的错误。如果将range(1,3)更改为range(3)range(0, 3),则将导致结果错误。那会尝试获取数组中第一个元素的对数,即零,并且没有对数。

您可能希望缩进倒数第二行并将其更改为

n2 += [x]

有打印输出

[0, 1, 2, 3, 0.0, 1.0]