首页 > 如果直接使用"用户输入的函数"?

如果直接使用"用户输入的函数"?

是这样的,我写了一个简单的用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()

【热门文章】
【热门文章】