我想让这个程序用他们的输入做一些事情的总结。到目前为止我的代码
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 :(得分:0)
您是否需要使用int()将eqn变量中的raw_input包围起来? 我使用python 3,但这应该可以解决你的问题。
答案 1 :(得分:0)
您可以使用输入而不是 raw_input ,但这不是一个好主意,因为每次调用 eqn 时它都会拨打输入并提示您输入等式。
更好的方法是预先存储方程式(使用 raw_input ),然后在lambda函数中使用 eval 。类似的东西:
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()