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

是这样的,我写了一个简单的用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只能输入字符串啊。

有什么简便可行的方法吗?

阅读 5.2k
2 个回答

请用eval()

可以用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.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题