尝试使用函数平均数字列表

时间:2014-03-08 15:53:13

标签: python python-3.x

首先,我是python的新手。因此,我只知道循环,范围,镜头和总和来解决这个问题。我很难尝试创建一个可以平均数字列表的函数。

到目前为止,这是我的代码:

def ave(L):
    L = list(range(len(L))
    for a in range(len(L)):
        if len(L) == 0: return 0
        else: return float((sum(L))/len(L))

到目前为止,我的第三行range(L)收到语法错误。

3 个答案:

答案 0 :(得分:3)

您需要做的就是返回L之和除以L的长度:

def ave(L):
    if not L:
        return 0
    return sum(L) / len(L)

不需要range()float()for

在Python 3中,/始终生成一个浮点数。 sum()将为您完成所有循环。您唯一需要注意的是,如果列表为空,则返回0

答案 1 :(得分:1)

以下行缺少)

L = list(range(len(L)))
                      ^

答案 2 :(得分:1)

由于空列表的平均值未定义,因此您应该返回None而不是'0'。 根据{{​​3}},检查长度,最好捕捉潜在的错误。它也更清楚你在做什么,因为错误是自描述的。

def ave(L):
    try:
        return sum(L) / len(L)
    except ZeroDivisionError:
        return None