-1

有没有办法解决字符串格式的数学方程?

例如,我有 x = 2 y = 3 equations_str = ('x+y', 'x-y')

我想要一个可以提供的功能

results = (5, -1)

我想这样做是因为我想将方程作为数字的标题,所以它们需要是字符串。我知道有人问过java类似的问题,但我对java不够熟悉,所以把它翻译成python。

谢谢!

4

4 回答 4

1

正如 Jam 所提到的,您可以执行以下操作:

equations_str = (eval('x+y'), eval('x-y'))
于 2019-02-28T19:14:00.217 回答
1

查看 eval() https://www.geeksforgeeks.org/eval-in-python/您可以编写语句并执行它们。

评估示例(交互式外壳):

>>> x = 1
>>> eval('x + 1')
2
>>> eval('x')
1
于 2019-02-28T19:01:11.387 回答
0

我能想到的解决这个问题的唯一方法是取你的方程,将它计算为一个常规整数,然后使用 str() 将其转换为字符串。然后你可以在继续之前将该结果放入一个数组中。唯一的问题是这种方法不适用于大量,但如果你只需要一些,这应该有效。希望这会有所帮助,卢克。

于 2019-02-28T19:01:59.413 回答
-2

试试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
于 2019-02-28T19:01:41.497 回答