【发布时间】:2017-06-22 17:39:59
【问题描述】:
我对编程很陌生,但我想用用户输入定义如下函数:
function = raw_input('What function shall be used? ') #user puts in "(1+1/x)^x"
def f(x): #using this to define
y = (1+1/x)**x
return y
我希望我想做什么很清楚。你能用输入吗 并先验地定义 sin 被用作 math.sin?但是之后如何定义函数呢?
已编辑以添加来自 cmets 的规范
假设有效输入是 Python 代码,例如问题中的“(1+1/x)**x”。您现在可以使用eval 定义一个以后可以使用的函数f(x) 吗?
【问题讨论】:
-
那么问题的措辞,听起来你想定义自己的迷你语言或计算机代数系统。
-
你可以使用 eval,但是你必须相信用户输入不会炸毁服务器。
-
sympy.org 可能会有所帮助...
-
@PauloScardine 不,您不能使用
eval,因为eval会计算一个python 表达式,但(1+1/x)^x在python 中并不意味着(1+1/x)**x。跨度> -
您可以使用
eval(),但不要...这是非常不安全的,您的用户至少需要了解一点Python(例如,其他东西的力量被定义为@ 987654330@ 不是^) - 如果他们这样做了,为什么不让他们定义自己的应用程序将加载的模块,而不是要求他们手动输入数学公式?
标签: python python-2.7 function variables