Python:带有未定义变量的Eval(2 * x + x = 3 * x)

时间:2015-06-14 13:07:19

标签: python variables placeholder

我正在寻找一种计算字符串的方法,可能包括变量。 eval将无法完成工作,因为我想使用未定义的变量。我在谈论一个函数,例如将"2*3*x"转换为"6*x"

有功能吗?

2 个答案:

答案 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