我正在寻找一种方法来计算字符串,其中可能包括变量。 eval
不会做这项工作,因为我想使用未定义的变量。我说的是一个函数,例如,它会"2*3*x"
变成"6*x"
。
有没有功能?
您可以使用 sympy 进行符号计算:
In [126]: import sympy as sy
In [127]: sy.simplify('2*x+x')
Out[127]: 3*x
要将有理数转换为浮点数,请使用sy.nfloat
:
In [170]: sy.nfloat(sy.simplify('2*3+x+3/4'))
Out[170]: x + 6.75
我可能完全误解了你的问题,但你在 OP 中说:我说的是一个函数,它会变成2*3*x to 6*x
如果这是您需要的,那么它很容易,只需使用括号:
(2*3)*x