Python对数,值错误:数学域错误

Python对数,值错误:数学域错误,python,math,python-module,logarithm,Python,Math,Python Module,Logarithm,我正在用python学习数学,当我尝试对数代码时,它会给我这个错误,有什么帮助吗 import math n = 1000000 n2 = 0 for i in range(n): x = math.log2(i) n2 += x print(n2) 它给我一个值错误: “ValueError:数学域错误”范围(n)从0到n-1 但是没有定义日志(0),因此使用范围(1,n)。您正在计算log2(0),即-inf。因此,您得到了错误。尝试范围(1,n) 编码快乐 您正在计算lo

我正在用python学习数学,当我尝试对数代码时,它会给我这个错误,有什么帮助吗

import math
n = 1000000
n2 = 0
for i in range(n):
    x = math.log2(i)
    n2 += x
print(n2)
它给我一个值错误: “ValueError:数学域错误”

范围(n)从0到n-1
但是没有定义日志(0),因此使用范围(1,n)。

您正在计算
log2(0)
,即
-inf
。因此,您得到了错误。尝试
范围(1,n)


编码快乐

您正在计算
log2(0)
,即
-inf
。因此,您得到了错误。尝试
range(1,n)
。解释他的代码不起作用的原因可能会很有用,只使用代码的答案很少能帮助人们完全理解他们哪里出了问题,而不是你的代码为什么起作用。
import math
n = 1000000
n2 = 0
for i in range(1,n):
    x = math.log2(i)
    n2 += x
print(n2)