用Python解析方程式我如何(轻松地)获取一个字符串,例如"sin(x)*x^2"用户可能在运行时输入的字符串,并生成一个可以评估任何值的Python函数x?
3 回答

海绵宝宝撒
TA贡献1809条经验 获得超8个赞
如果使用Python表示法,Python自己的内部编译器可以解析它。
如果你稍微改变符号,你会更快乐。
import compiler eq= "sin(x)*x**2"ast= compiler.parse( eq )
您将获得一个可以使用的抽象语法树。

哔哔one
TA贡献1854条经验 获得超8个赞
你可以使用Python parser
:
import parser formula = "sin(x)*x**2"code = parser.expr(formula).compile()from math import sin x = 10print eval(code)
它表现得比纯粹好eval
,当然也避免了代码注入!
添加回答
举报
0/150
提交
取消