如何在 Jupyter Notebook 中为新结构扩展 SymPy 漂亮打印?

注意:这是Math Stack Exchange 中此问题的副本。我必须首先在 Math StackExchange 中提出问题,因为StackOverflow 没有 MathJax。但是,几乎所有 SymPy 问题都在 StackOverflow 上。有关所需输出的排版,请参阅 Math Stack Exchange 版本。Math StackExchange 上的一位编辑建议我在这里交叉发布它。

在 Jupyter Notebook 中,如果我们执行此代码:

import sympy as sp

sp.init_printing()

x,y=sp.symbols('x,y')

x**2+sp.sin(y)

由于SymPy 的漂亮打印过程,我们将获得一个不错的输出,无需进一步编码,看起来像

http://img1.mukewang.com/6459f5c1000184c001080036.jpg

现在假设我们这样做:


class MetricSpace:

    def __init__(self, M, d):

        self.M = M

        self.d = d

        

    def __repr__(self):

        return f"$({self.M}, {self.d})$ {self.__class__.__name__}"


Re,d=sp.symbols(r'\Re,d')


MetricSpace(Re,d)

那么我们得到的输出是

http://img.mukewang.com/6459f5cc000153ce02060026.jpg

如果我们这样做


from IPython.core.display import Markdown

Markdown(repr(MetricSpace(Re,d)))

然后我得到所需的输出,看起来像

http://img2.mukewang.com/6459f5da0001112601480028.jpg

我们如何编写上述代码,以便 SymPy 的漂亮打印机在 Jupyter notebook 中提供所需的输出,而无需将其包装在 中Markdown(repr(...))



慕运维8079593
浏览 166回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python