Python Logarithm, Value Error : math domain error

Python Logarithm, Value Error : math domain error

我正在使用 python 学习数学,当我尝试使用此代码求对数时出现此错误,有什么帮助吗?

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

它给我一个值错误: "ValueError: math domain error"

范围(n)是从0到n-1 但是 Log(0) 没有定义,因此使用 range(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)

编码愉快!