请记住,在我展示我的代码时,我对编程很新。所以请原谅任何问题。我正在编写一段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)
答案 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)
注意:强>
SomeName
这样的名称用于类,而像some_name
这样的名称用于函数。