2017-04-14 56 views
0

的所以基本上我试图做一个程序,将用于n开始到NEND每个值做方程。这是到目前为止我的代码求和公式计划

def summation(nStart , nEnd , eqn): 
    sum = 0 
    while nStart - 1 != nEnd: 
     sum = sum + eqn 
     nStart += 1 
    return sum 

print summation(1 , 5 , n + 1) 

我得到N不是最后一行定义。我想这是因为我有n + 1但我该如何解决?我尝试了让n = 0,但那没有帮助,因为那么eqn只是1而不是方程。

回答

0

你可以使用一个lambda函数作为参数。例如:

def summation(start, end, eqn): 
    sum = 0 
    # Note that the *end* value will not be used, since range stops at *end-1* 
    for i in range(start, end): 
     sum+=eqn(i) 
    return sum 

print summation(0,10,lambda x: x+1) 
print summation(0,10,lambda x: x**2) 

返回结果:

55 
285 

由于

formula

formula2

希望这给你去探索和修改,如果它不”一个有用的工具不要做你以后的事情。

+0

我是很新,这使我不得不弄清楚如何在范围和lambda作品,但仍然感谢! – Joy