以下是我的问题:
假设我有一个这样的输入(字符串输入):
"(x = 5*y + 8) if z<3 else (x=4*y+9))"
我可以使用以下代码评估这种类型的字符串:
import parser
formula = "(5*y + 8) if z<3 else (4*y+9)"
code = parser.expr(formula).compile()
y = 10
z=8
print eval(code)
然而在这种情况下,表达式成员中没有等式。
我的问题是:是否有一种简单的方法可以解析输入以创建某种数学表达式,然后例如只给出y和z来最终计算x的值;并且只给出x和z来计算y?
如果没有,我应该转向抽象语法树,也许是递归解析器和语法?还是有一个库可以做到这样的事情?
提前感谢!
sympy
... - jonrsharpe?:
运算符而不是pythonif else
,但可以轻松更改为pythonic语法。 - Nikos M.