有没有办法解决字符串格式的数学方程?
例如,我有
x = 2
y = 3
equations_str = ('x+y', 'x-y')
我想要一个可以提供的功能
results = (5, -1)
我想这样做是因为我想将方程作为数字的标题,所以它们需要是字符串。我知道有人问过java类似的问题,但我对java不够熟悉,所以把它翻译成python。
谢谢!
正如 Jam 所提到的,您可以执行以下操作:
equations_str = (eval('x+y'), eval('x-y'))
查看 eval() https://www.geeksforgeeks.org/eval-in-python/您可以编写语句并执行它们。
评估示例(交互式外壳):
>>> x = 1
>>> eval('x + 1')
2
>>> eval('x')
1
我能想到的解决这个问题的唯一方法是取你的方程,将它计算为一个常规整数,然后使用 str() 将其转换为字符串。然后你可以在继续之前将该结果放入一个数组中。唯一的问题是这种方法不适用于大量,但如果你只需要一些,这应该有效。希望这会有所帮助,卢克。
试试sympy包的 sympify 功能。它允许您评估字符串,但使用该eval函数,因此不要在未经处理的输入上使用它。
例子:
>>> from sympy import sympify
>>> str_expr = "x**2 + 3*x - 1/2"
>>> expr = sympify(str_expr)
>>> expr
x**2 + 3*x - 1/2
>>> expr.subs(x, 2)
19/2