2015-03-03 70 views
1

编写函数average,它接受包含整数元素作为参数的tuple,并返回参数内元素的平均值。如何编写接受包含整数元素的元组的函数?

for example, average((1, 2, 3)) = 2 
for example, average((-3, 2, 8, -1)) = 1.5 

我的回答:

def average(values): 
    if values == (1,2,3): 
     return (1+2+3)/3 
    elif values == (-3,2,8,-1): 
     return (-3+2+8-1)/4 

为什么错了?怎么做? 谢谢!

回答

2

您的功能只适用于这两个特定输入。目标是编写一个函数,为所有有效输入返回正确的平均值。

你应该使用Python的内置函数sumlen这个

def average(values): 
    return sum(values)/len(values) 

对于Python 2,你必须包裹sum(values)(或len(values),隔板的任何部分是好的)的调用内部float

从Python 3.4开始,您可以使用函数mean from the statistics module

import statistics 
def average(values): 
    return statistics.mean(values) 

或更短作为功能进行统计的平均只是另一个名字

average = statistics.mean 
0

尝试:

In [1]: def average(values): 
    ...:  return float(sum(values))/len(values) 
    ...: 

In [2]: print average((-3,2,8,-1)) 
1.5 

添加floatsum功能为Python 2

工作
+0

由于问题被标记为“python3”,浮动调用是不必要的,因为正常的d i3在Python3中已经做了float division – halex 2015-03-03 06:29:34

+0

好的,谢谢。我不知道... – Aaron 2015-03-03 06:31:50

相关问题