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

问题描述 投票:0回答:3

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

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

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

python math python-module logarithm
3个回答
-2
投票
import math
n = 1000000
n2 = 0
for i in range(1,n):
    x = math.log2(i)
    n2 += x
print(n2)

快乐的编码!


1
投票

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


0
投票

你正在计算log2(0),这是- inf。因此,您收到错误。试试range(1,n)

© www.soinside.com 2019 - 2024. All rights reserved.