SymPy.solvers.solver()返回空列表



当使用sympy.solve((尝试求解简单的线性方程时,函数只返回一个空列表。

这是我的代码:

from sympy import Symbol
from sympy.solvers import solve
from sympy.parsing.sympy_parser import parse_expr as parse 
x = Symbol('x')
equation = input('Enter an equation: ')
equation = message.content.split()[1].replace('=',',')
solution = solve(parse(equation))

对于equation = 'x+3=8'print(solution)只打印[]

有人能弄清楚为什么会发生这种事吗?

谢谢!

我不确定这里的最佳实践是什么,但在这里使用Eq会起作用。经过几次更改后的代码-

from sympy import Symbol, Eq
from sympy.solvers import solve
from sympy.parsing.sympy_parser import parse_expr as parse
x = Symbol('x')
equation_1 = input('Enter an equation: ')
equation_2 = equation_1.split('=')
solution = solve(Eq(*[parse(i) for i in equation_2]), x)
print(solution)

示例输出-

Enter an equation: x+1=x**2
[1/2 - sqrt(5)/2, 1/2 + sqrt(5)/2]

处理此解析的标准方法是使用;电池";转换:

>>> from sympy.parsing.sympy_parser import parse_expr, T
>>> parse_expr('x=1',transformations=T[1,9]) # auto-symbol and convert =
Eq(x, 1)
>>> solve(_)
[1]

最新更新