更改了parse_expr()的顺序

时间:2019-11-02 00:33:08

标签: sympy

我使用parse_expr(“-5 + 2 * x + 3-7 * x + 5-3 * x”,评估为False)。 根据评估为False的文档,我希望保留表达式的顺序:

“当为False时,参数的顺序将保留在字符串中……”

但是结果是排序的: -7 * x-3 * x + 2 * x-5 + 3 + 5

sympy = 1.4

1 个答案:

答案 0 :(得分:0)

它与广告中的一样

>>> u = parse_expr("-5 + 2*x + 3 - 7*x + 5 - 3*x", evaluate=False); u.args
(-5, 2*x, 3, -7*x, 5, -3*x)

但是,打印机以排序的顺序打印它们。似乎应该有一种更简单的方法来执行以下操作,但是它可以正常工作:

>>> s=StrPrinter(dict(order='none'))
>>> s._print_Add(u)
-5 + 2*x + 3 - 7*x + 5 - 3*x