关于括号错误sympy.printing.mathm公司

2024-09-27 00:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我用sympify将一个Python字符串转换为一个公式,如下所示:

我用MathML命令将公式转换成MathML格式。你知道吗

from sympy import *
from sympy.printing.mathml import mathml

print(mathml(sympify("(2*x + 3*y + 1)*(4*x**2 - 6*x*y - 2*x + 9*y**2 - 3*y + 1)"),printer='presentation'))

结果,输出了以下代码。你知道吗

<mrow><mrow><mrow><mn>2</mn><mo>&InvisibleTimes;</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow><mo>&InvisibleTimes;</mo><mrow><mrow><mn>4</mn><mo>&InvisibleTimes;</mo><msup><mi>x</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>6</mn><mo>&InvisibleTimes;</mo><mi>x</mi><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>-</mo><mrow><mn>2</mn><mo>&InvisibleTimes;</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>9</mn><mo>&InvisibleTimes;</mo><msup><mi>y</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow></mrow>

我将代码嵌入到HTML中,并尝试如下。你知道吗

测试.html

<html>
<head>
  <script async="" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"></script>
</head>
<body>
<math>
<mrow><mrow><mrow><mn>2</mn><mo>&InvisibleTimes;</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow><mo>&InvisibleTimes;</mo><mrow><mrow><mn>4</mn><mo>&InvisibleTimes;</mo><msup><mi>x</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>6</mn><mo>&InvisibleTimes;</mo><mi>x</mi><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>-</mo><mrow><mn>2</mn><mo>&InvisibleTimes;</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>9</mn><mo>&InvisibleTimes;</mo><msup><mi>y</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>3</mn><mo>&InvisibleTimes;</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow></mrow>
</math>
</body>
</html>

但是,使用此代码时,输出将缺少括号,如下图所示。你知道吗

[![答:]

我读了sympy.printing.mathml][2]. 你知道吗

所以我想知道_print_Interval方法是用来做什么的。你知道吗

这与公式中缺少括号的问题有关吗?你知道吗

这个表达式就是一个例子。 我想正确地转换更复杂的公式。你知道吗


Tags: 代码fromimporthtmlmathml公式momi
2条回答

isympy会话中:

In [56]: sympify("(2*x + 3*y + 1)*(4*x**2 - 6*x*y - 2*x + 9*y**2 - 3*y + 1)")                          
Out[56]: 
                ⎛   2                    2          ⎞
(2⋅x + 3⋅y + 1)⋅⎝4⋅x  - 6⋅x⋅y - 2⋅x + 9⋅y  - 3⋅y + 1⎠

我在日文版的stackoverflow中得到了答案。 https://ja.stackoverflow.com/q/55578/22541

解决这个问题。你知道吗

[之前]

for term in terms:
    x = self._print(term)
    mrow.appendChild(x)

[之后]

for term in terms:
    mrow.appendChild(self.parenthesize(term, PRECEDENCE['Mul']))

相关问题 更多 >

    热门问题