def avg(n):
count=0
sum=0
for var in range(n):
count+=1
sum+=var
return (sum/count)
print (avg(5))
这是尝试使用 for 循环来查找从 1 到 n 的整数的平均值。我错过了什么?
两个原因。首先,您将 0..4(包括)的数字相加。您可以通过做来修复它range(1,n+1)
,或更改为sum += var + 1
第二个原因是默认使用整数除法,您可以通过添加到顶部来强制执行浮点除法:
from __future__ import division
或在当地做return sum/float(count)
引用文档:
范围(开始,停止[,步骤])
如果省略 start 参数,则默认为 0。完整形式返回纯整数列表 [start, start + step, start + 2 * step, ...]。如果 step 为正,则最后一个元素是最大的 start + i * step小于 stop;
换句话说,range()
在 Python 中是不包含的。这意味着您的代码中有一个错误,它应该是这样的:
def avg(n):
count=0
sum=0
for var in range(1, n+1):
count+=1
sum+=var
return (float(sum)/count)
print (avg(5))