我刚刚开始编程并且在转换" raw_input"成功能。例如,我假设使用矩形公式对函数f(x)进行数值积分。当我使用以下代码时:
def h(a,b,n):
return (b-a)/float(n)
def rectangle(f,a,b,n):
I=0
h_1=h(a,b,n)
for j in range(0,n):
I=I+f((a+(j*h_1)))
I=I*h_1
return I
f=raw_input("f(x): ")
a_1=float(raw_input("Please insert the under limit: "))
b_1=float(raw_input("Please insert the upper limit: "))
n_1=int(raw_input("Insert the range for the integration: "))
rectangle(lambda x: f,a_1,b_1,n_1)
我收到以下错误: TypeError:+:' int'不支持的操作数类型和' str' 对于任何功能。
但是,当我将 lambda x:f 更改为 lambda x:x ** 2 并且不使用raw_input时,它可以正常工作。例如:
def h(a,b,n):
return (b-a)/float(n)
def rectangle(f,a,b,n):
I=0
h_1=h(a,b,n)
for j in range(0,n):
I=I+f((a+(j*h_1)))
I=I*h_1
return I
a_1=float(raw_input("Please insert the under limit: "))
b_1=float(raw_input("Please insert the upper limit: "))
n_1=int(raw_input("Insert the range for the integration: "))
rectangle(lambda x:x**2,a_1,b_1,n_1)
完美无缺。
所以,我的问题是:如何使用raw_input并使程序工作?