Python3-求解字符串格式的数学方程

时间:2019-02-28 18:58:53

标签: python string math equation

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

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

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

results = (5, -1)

我想这样做是因为我想将方程式作为图形的标题,因此它们必须是字符串。 我知道有人问过类似的Java问题,但我对Java不够熟悉,因此请将其转换为python。

谢谢!

4 个答案:

答案 0 :(得分:1)

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

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

>>> x = 1
>>> eval('x + 1')
2
>>> eval('x')
1

答案 1 :(得分:1)

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

equations_str = (eval('x+y'), eval('x-y'))

答案 2 :(得分:0)

我能想到的解决此问题的唯一方法是采用方程式,将其计算为规则整数,然后使用str()将其转换为字符串。然后,您可以将该结果放入数组中,然后再继续。唯一的问题是该方法无法大量使用,但是如果您只需要少量方法,则应该可以使用。希望这会有所帮助,卢克。

答案 3 :(得分:-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