这按预期工作:

>>> from sympy.parsing.sympy_parser import parse_expr
>>> parse_expr("2**3"), parse_expr("2**3", evaluate=False)
(8, 2**3)


但是,这不是:

>>> from sympy.parsing.sympy_parser import parse_expr
>>> parse_expr("sqrt(9)"), parse_expr("sqrt(9)", evaluate=False)
(3, 3)


我期望:

(3, sqrt(9))


有什么想法,为什么?

最佳答案

evaluate=False仅保证


  参数的顺序将保持原样
  通常会发生的字符串和自动简化是
  压抑。 (请参见示例)。


它不会阻止函数的执行。

--Documentation

evaluate仅指运算符,不指功能。

关于python - Python sympy评估何时要求不这样做,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45996040/

10-12 07:12