我知道这是因为 n,但 n 应该是任何变量,并保留为 n,这就是我所拥有的:
def average(n):
if n >= 0:
avg = sum((range(1:int(n)))/float(len(range(1:int(n)))))
print avg
我如何解决它?
x 从 1 到 n 的总和很简单(n + 1) * (n / 2)
。求和的元素数为n
。做一点简化,你的新功能是
def average(n):
return (n + 1) / 2.0
如果您确实希望 Python 的 range() 具有独占上限的行为(即让 average(10) 返回值 1 - 9 而不是 1 - 10 的总和的平均值),则必须对此进行调整。
我可能错了,但 range(1:int(n)) 看起来语法不正确,括号也不匹配。您可能想要计算 0 到 n 范围内数字的平均值。在这种情况下,我会像这样替换您的代码:
def average(n):
if n >= 0:
avg = sum((range(int(n))))/float(n)
print avg
如果你的范围总是 1:n,你为什么不直接使用这个:
avg = sum((range(1:int(n)))/float(n))
或者我不明白你的问题......