python - 如果直接使用"用户输入的函数"?
黄舟
黄舟 2017-04-17 13:05:09
[Python讨论组]

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

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

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(2)
伊谢尔伦

可以用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()

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号