Python:使用未定义变量求值 (2*x+x = 3*x)

Python: Eval with undefined variables (2*x+x = 3*x)

我正在寻找一种方法来计算可能包含变量的字符串。 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