Python 非常基本的同向误差

Python 非常基本的同向误差,python,scipy,sympy,Python,Scipy,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 = Sym

我正在努力学习同情。我写了下面的内容,它抛出了一个错误。我甚至都没做过复杂的事情

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)
raise SympifyError('无法分析%r'%a,exc)
sympy.core.sympify.SympifyError:表达式“无法分析u'10x+4-(7)”的sympify失败,因为引发了异常:
SyntaxError:无效语法(,第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

有没有办法在出现#x时自动插入*?谢谢!唯一的问题是如果只有一个变量x。类似于等式.replace('\dx','\d*x')的东西是否有效@Dblisa实际上,re.sub可能更适合于此,对吗?我不确定“单变量x”是什么意思,但您的示例使它看起来像是有一些微分方程。在任何情况下,如果你有例外的“星号在每个x之前”规则,那么是的,使用正则表达式是一种方法。祝你好运如果你陷入困境,我会说你可以开始一个新的问题——你原来的问题似乎已经解决了。