python - 关于 sympy.printing.mathml 中的括号错误
问题描述
我使用 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>⁢</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>3</mn><mo>⁢</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow><mo>⁢</mo><mrow><mrow><mn>4</mn><mo>⁢</mo><msup><mi>x</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>6</mn><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow><mo>-</mo><mrow><mn>2</mn><mo>⁢</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>9</mn><mo>⁢</mo><msup><mi>y</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>3</mn><mo>⁢</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>⁢</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>3</mn><mo>⁢</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow><mo>⁢</mo><mrow><mrow><mn>4</mn><mo>⁢</mo><msup><mi>x</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>6</mn><mo>⁢</mo><mi>x</mi><mo>⁢</mo><mi>y</mi></mrow><mo>-</mo><mrow><mn>2</mn><mo>⁢</mo><mi>x</mi></mrow><mo>+</mo><mrow><mn>9</mn><mo>⁢</mo><msup><mi>y</mi><mn>2</mn></msup></mrow><mo>-</mo><mrow><mn>3</mn><mo>⁢</mo><mi>y</mi></mrow><mo>+</mo><mn>1</mn></mrow></mrow>
</math>
</body>
</html>
但是,使用此代码,输出将缺少括号,如下图所示。
[![画像の说明をここに入力][1]][1]
我阅读了[sympy.printing.mathml 的源代码][2]。
所以我想知道这个_print_Interval
方法是用来做什么的。
这与公式中缺少括号的问题有关吗?
这个表达式就是一个例子。我想正确转换更复杂的公式。
解决方案
在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⎠
推荐阅读
- node.js - Firebase 云 pubsub 订阅停止侦听消息
- wpf - 为什么 TextBlock 中的文本不显示?
- c++ - N皇后解决方案不正确,我不知道为什么
- python - 为什么 np.float32 的执行速度可能比 np.float64 慢?
- python - 将数组切片传递给 Python 中的函数是 O(1) 还是 O(N) 操作?
- javascript - 如何使用firebase + react检查Session是否还活着?
- google-sheets - 如何根据多列值获取不同行组合的计数?
- mysql - SQL中按id删除多行
- swift - 使用 swit for 循环解决 CodingBat string_bits 问题
- ruby-on-rails - 如何在rails中使用webpacker安装tailwindcss