【发布时间】:2014-12-12 14:57:44
【问题描述】:
我正在编写一个 python 脚本,它需要以这样的形式从用户那里获取一个等式
z=x^2+3x+9 +y^3 or z =cos(pi/2+x) + 2sin(y)
并在运行时根据 x 和 y 的许多值评估函数。我将如何使用用户提供的输入作为函数?这意味着我希望能够做这样的事情:
input = input("please input 3 variable function.")
function = evaluate_function(input)
for x and y:
result = evaluate function
return result
这样的事情可能吗?我环顾四周,发现我想做的事情似乎是这个(How to process user supplied formulas?),但它只是谈论评估 x 和 z 的单个值,而不是迭代许多值。任何帮助将不胜感激。
更新:正如下面所建议的,我发现这个 (http://lybniz2.sourceforge.net/safeeval.html) 关于使用 eval() 这似乎是我想做的事情
【问题讨论】:
-
听说过
eval吗? -
是的,但我读到如果您不能信任用户的输入,这不是一种安全的方法
标签: python user-input equation