有没有办法解决字符串格式的数学方程式?
例如,我有
x = 2
y = 3
equations_str = ('x+y', 'x-y')
我想要一个可以提供的功能
results = (5, -1)
我想这样做是因为我想将方程式作为图形的标题,因此它们必须是字符串。 我知道有人问过类似的Java问题,但我对Java不够熟悉,因此请将其转换为python。
谢谢!
答案 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