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

时间:2018-09-16 05:41:11

标签: 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:数学域错误”

3 个答案:

答案 0 :(得分:1)

范围(n)从0到n-1 但是未定义Log(0),因此应使用range(1,n)。

答案 1 :(得分:0)

您正在计算^[^/].*[^/]$,即log2(0)。因此,您会得到错误。尝试- inf

答案 2 :(得分:-2)

import math
n = 1000000
n2 = 0
for i in range(1,n):
    x = math.log2(i)
    n2 += x
print(n2)

快乐的编码!