如何使 raw_input 不是 python 中的字符串
How To Make raw_input Not A String In 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。
您不需要用 int() 将 eqn 变量中的 raw_input 括起来吗?
我使用 python 3,但这应该可以解决您的问题。
您可以使用 input 而不是 raw_input,但这并不是一个好主意,因为每次调用 eqn 它将调用 input 并提示您输入方程式。
更好的方法是预先存储方程(使用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()
我想让这个程序对他们的输入进行求和。到目前为止我的代码
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。
您不需要用 int() 将 eqn 变量中的 raw_input 括起来吗? 我使用 python 3,但这应该可以解决您的问题。
您可以使用 input 而不是 raw_input,但这并不是一个好主意,因为每次调用 eqn 它将调用 input 并提示您输入方程式。
更好的方法是预先存储方程(使用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()