使用一个函数的输出并在另一个函数中取平均值

时间:2014-03-09 03:31:58

标签: python python-3.x

请记住,在我展示我的代码时,我对编程很新。所以请原谅任何问题。我正在编写一段python代码,它使用一个函数的输出,然后在另一个函数中对其进行平均。我正在努力解决如何做到这一点,这是我到目前为止所做的:

def avg(A):
    if not A:
        return 0
    return sum(A) / len(A)

使用上面的函数,我必须用它来计算下面产生的函数的平均值:

def SampleFunction(): # Example Function
    A = list(range(300))
    for i in range(300):
        if i%2:
            A[i] = 3.1*(i+1)**1.2 - 7.9*i
        else:
            A[i] = 4.2*(i+2)**.8 - 6.8*i
    return A

下面是我试图将两者联系在一起的功能。

def average(SampleFunction):
    if len(SampleFunction) == 0: return 0
    return sum(SampleFunction) / len(SampleFunction)

2 个答案:

答案 0 :(得分:1)

def avg(A):
    if not A:
        return 0
    return sum(A) / len(A)

def SampleFunction(): # Example Function
    A = list(range(300))
    for i in range(300):
        if i%2:
            A[i] = 3.1*(i+1)**1.2 - 7.9*i
        else:
            A[i] = 4.2*(i+2)**.8 - 6.8*i
    return avg(A)     #Return the avg of A instead of just A

答案 1 :(得分:1)

您在传递SampleFunction作为参数的时刻是正确的,但它是函数,您必须在average()内调用它:

def average(some_function):
    result = some_function() # invoke
    return avg(result) # use the already defined function 'avg'

当你调用它时,将你想要的功能传递给average()

print average(SampleFunction)

注意:

  • 我建议您关注Python naming conventions。像SomeName这样的名称用于类,而像some_name这样的名称用于函数。