带变量的 Python 字符串表达式求值
Posted
技术标签:
【中文标题】带变量的 Python 字符串表达式求值【英文标题】:Python string expression evaluation with variable 【发布时间】:2019-02-21 08:48:02 【问题描述】:我有一个表达式字符串“2 + (y * 11) = 42” 我打算将“y”隔离到 LHS 和 将字符串转换为“y = (42 - 2) / 11”
我该怎么做,我是 python3 的新手。 提前致谢。
【问题讨论】:
看看sypmy
。
问题只是通过在一侧隔离变量来转换字符串,而不是解决它。我不确定是否可以使用 sympy 或 z3 隔离变量。
...隔离变量(在您的情况下)与求解方程相同。如果你不想使用sympy
,我不确定你是否可以用更少的代码做到这一点。
我需要做的就是在隔离变量的同时保持方程不变
一般?或者只是一个线性方程?我仍然认为 sympy 是最简单的方法。
【参考方案1】:
如果你安装了sympy
,你可以这样做:
from sympy.solvers import solve
from sympy import Symbol
y = Symbol('y')
sol = solve(2 + (y * 11) - 42, y)
print(sol) # [40/11]
请注意,solve
将尝试在 LHS 上找到多项式的根 - 因此是 - 42
。
【讨论】:
问题只是通过在一侧隔离变量来转换字符串,而不是解决它。我不确定是否可以使用 sympy 或 z3 隔离变量以上是关于带变量的 Python 字符串表达式求值的主要内容,如果未能解决你的问题,请参考以下文章