计算可互换范围内的平均值?

时间:2009-10-28 21:12:28

标签: python variables average

我知道这是因为n,但是n应该是任何变量,并且保留为n,这就是我所拥有的:

def average(n):
    if n >= 0:
        avg = sum((range(1:int(n)))/float(len(range(1:int(n)))))
    print avg

我该如何解决?

3 个答案:

答案 0 :(得分:2)

x从1到n的总和就是(n + 1) * (n / 2)。求和的元素数量为n。做一点简化,你的新功能是

def average(n):
    return (n + 1) / 2.0

如果你真的想要Python的范围()的独占上限的行为,你必须调整这个(即,平均值(10)返回值的总和为1 - 9而不是1 - 10 )。

答案 1 :(得分:1)

我可能错了,但范围(1:int(n))看起来不像语法正确而且括号不匹配。您可能想要计算0到n范围内的数字的平均值。在这种情况下,我会替换你的代码:

def average(n):
if n >= 0:
    avg = sum((range(int(n))))/float(n)
print avg

答案 2 :(得分:0)

如果您的范围始终为1:n,为什么不使用它:

avg = sum((range(1:int(n)))/float(n))

或许我不理解你的问题...