2017-04-14 90 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