我正在用python学习数学,当我尝试将此代码记录下来时,它给了我这个错误,请帮忙?
import math
n2 = [0,1,2,3]
for i in range(1,3):
x = math.log2(n2[i])
n2 += x
print(n2)
它给我一个值错误:“ ValueError:数学域错误”
答案 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]