防止在 Sympy 中计算乘法表达式

ben*_*456 5 python latex numpy sympy python-3.x

我正在生成一个带有两个分数的表达式,并希望使用 LaTeX 将整个表达式打印得漂亮,然后放在工作表上。

例如形式:

(5/7) * (3/4). 
Run Code Online (Sandbox Code Playgroud)

但是,当我执行以下操作时:

fract1 = sympy.sympify(Fraction(5,7))
fract2 = sympy.sympify(Fraction(3,4))
expression = sympy.Mul(fract1,fract2,evaluate=False)
Run Code Online (Sandbox Code Playgroud)

它返回

5*3/(7*4)
Run Code Online (Sandbox Code Playgroud)

显然,它正在组合分数,但并未实际评估,但我希望能够以适合作为数学工作表问题的格式生成它。

Fra*_*zzi 5

下一个 SymPy 版本将具有UnevaluatedExpr

\n\n
In [4]: uexpr = UnevaluatedExpr(S.One*5/7)*UnevaluatedExpr(S.One*3/4)\n\nIn [7]: uexpr\nOut[7]: 5/7\xe2\x8b\x853/4\n
Run Code Online (Sandbox Code Playgroud)\n\n

要发布和评估它,只需使用.doit()

\n\n
In [8]: uexpr.doit()\nOut[8]: \n15\n\xe2\x94\x80\xe2\x94\x80\n28\n
Run Code Online (Sandbox Code Playgroud)\n\n

LaTeX 输出如下:

\n\n
In [10]: print(latex(uexpr))\n\\frac{5}{7} \\frac{3}{4}\n
Run Code Online (Sandbox Code Playgroud)\n\n

此功能自 SymPy 1.1 起可用。请参阅文档以了解更多信息

\n