我知道这是因为n,但是n应该是任何变量,并且保留为n,这就是我所拥有的:
def average(n):
if n >= 0:
avg = sum((range(1:int(n)))/float(len(range(1:int(n)))))
print avg
我该如何解决?
答案 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))
或许我不理解你的问题...