是这样的,我写了一个简单的用python求数值积分的程序,运行是正确的。
比如我想求sin(x)/x,在x从0到1的数值积分,首先我要定义一个函数((我用的是Python2.7)
像这样:
def func(x):
if 0 == x:
return 1
else:
return sin(x) / x
然后就是一大堆的代码求它的数值积分。
但是下次我再想求cos(x)/x的积分时,又要把上面那小段代码改成return cos(x) / x
现在要给不会修改源代码的人用,怎样直接让用户输入表达式呢?比如程序提示用户输入,然后
他直接输入cos(x) / x
然后程序就可以直接使用,但是raw_input只能输入字符串啊。
有什么简便可行的方法吗?
可以用input()嘛。
>>> def sin():
... return 1
...
>>> def cos():
... return 1
...
>>> a=input()
cos
>>> a()
1
>>>
只是一个例子。具体还得看情况。
不过。折腾这些干啥子。perl更方便。(砸场子来啰)
● perl -e 'sub sin { ... }; sub cos { ... };use feature "say";chomp (my $func=<STDIN>);say $func->(1)'
sin
Unimplemented at -e line 1, <STDIN> line 1.
请用eval()