2017-04-14 15 views
0

基本的には、nStartから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

ラムダ関数を引数として使用できます。たとえば:

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

ので、これはあなたに探求し、それはdoesnの場合は、変更するのに便利なツールを提供しますあなたが何をしているのか正確には分かりません。

+0

私はこれにかなり新しいので、範囲とラムダがどのように機能するのか理解しなければならないでしょうが、それでもなお感謝します!! – Joy

関連する問題