改变:
averageAge = (float(ages)) / (float(howManyNames))
至:
averageAge = sum(ages) / float(howManyNames)
(注意:出于美学原因,我刚刚删除了多余的括号。)
说明:
如果你打开一个 repl 并输入
In [2]: help(float)
你会得到float
的文档,上面写着:
Help on class float in module __builtin__:
class float(object)
| float(x) -> floating point number
|
| Convert a string or number to a floating point number, if possible.
|
| Methods defined here:
...
换句话说,你可以这样做:
In [3]: float(3)
Out[3]: 3.0
In [4]: float("3")
Out[4]: 3.0
但你不能这样做:
In [5]: float([])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-79b9f7854b4b> in <module>()
----> 1 float([])
TypeError: float() argument must be a string or a number
因为[]
是 a而不是字符串或数字,根据其文档list
可以接受。float
接受列表也没有意义,float
因为它的目的是将字符串或数字转换为浮点值。
在您的问题中,您定义:
ages = []
设置ages
为[]
(类型list
。)
当然,要找到平均值,您需要将值的总和除以存在的值的数量。当然,python
恰好有一个内置sum
函数可以为您汇总一个列表:
In [6]: sum([])
Out[6]: 0
In [7]: sum([1,2,3]) # 1 + 2 + 3
Out[7]: 6
您只需除以值的数量即可转换平均值。