非常基本的 SymPy 错误

Very Basic SymPy Error

我正在尝试学习 SymPy。我写了以下内容并抛出错误。我什至还没有接触到任何复杂的东西...

from sympy.solvers import solve
from sympy import Symbol

string = "10x+4=7"
#equation = raw_input("Enter an equation")

left, right = string.split('=')
string = left + "-(" + right + ")";
print string
x = Symbol('x')
print solve(string, x)

此代码引发错误:

raise SympifyError('could not parse %r' % a, exc)
sympy.core.sympify.SympifyError: Sympify of expression 'could not parse u'10x+4-(7)'' failed, because of exception being raised:
SyntaxError: invalid syntax (<string>, line 1)

为什么会这样?

确实非常基础。

python 中的乘法是通过 * 字符实现的。

因此,您应该string设置如下:

string = "10*x+4=7"

如果您想在方程式中的每个 x 前面自动插入 * 字符,您可以定义一个像这样的函数来完成这项工作:

def insert_asterisks(equation):
    return equation.replace('x', '*x')

下面是这个函数的使用示例:

In [16]: string = "10x+4=7"

In [17]: string = insert_asterisks(string)

In [18]: print string
10*x+4=7