如何编写一个接受包含整数元素的元组的函数?

时间:2015-03-03 06:22:33

标签: python python-3.x

编写一个函数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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

尝试:

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

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

float添加到sum函数以用于Python 2。