我正在寻找一种计算字符串的方法,可能包括变量。 eval
将无法完成工作,因为我想使用未定义的变量。我在谈论一个函数,例如将"2*3*x"
转换为"6*x"
。
有功能吗?
答案 0 :(得分:5)
您可以使用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
答案 1 :(得分:0)
我可能完全误解了你的问题,但你在你的OP中说过:我正在谈论一个函数,它会变成2*3*x to 6*x
如果这是您所需要的,那么它非常简单,只需使用括号:
(2*3)*x