2017-04-14 8 views
0

私は、このプログラムが入力と何かを合計するようにしたいと思っています。私のコードは、これまでraw_inputを文字列ではなくPythonで作る方法

def summation(): 
start = int(raw_input("Start value of n?: ")) 
end = int(raw_input("End value of n?: ")) 
eqn = lambda n: raw_input("Equation?: ") 
sum = 0 

for i in range(start , end + 1): 
    sum += eqn(i) 

return sum 
print summation() # start will be 1, end will be 5 , equation will be n + 1. Should print 20 

私は方程式のraw_inputない文字列を作るためにどのような方法があるので、一緒に整数や文字列を追加することはできませんエラーが発生します。 'n + 1'の代わりに、n + 1にします。

答えて

0

あなたは入力の代わり raw_input を使用することができますが、これはEQNが、それは入力を呼び出し、式を入力するように求められますと呼ばれるたびにいるので、本当に良いアイデアではありません。

より良い方法は、( raw_input を使用して)事前の式を格納し、次いでラムダ関数で評価を使用することです。次のようなもの:

def summation(): 
    start = int(raw_input("Start value of n?: ")) 
    end = int(raw_input("End value of n?: ")) 
    fx = raw_input("Equation: ") 
    eqn = lambda n: eval(fx) 
    sum = 0 

    for i in range(start , end + 1): 
     sum += eqn(i) 

    return sum 

print summation() 
0

eqn変数のraw_inputをint()で囲む必要はありませんか? 私はPython 3を使用していますが、それはあなたの問題を解決するはずです。

関連する問題