Python jupyter笔记本中的自定义打印

Python jupyter笔记本中的自定义打印,python,ipython,sympy,jupyter-notebook,Python,Ipython,Sympy,Jupyter Notebook,我正在寻找一种替代MathCad的方法来进行简单的计算,但我想让表达式看起来像我使用的笔和纸一样,让不懂编程的人更容易阅读。我试过斯维夫,克尼特,但我不满意。我最近发现了带有SymPy的Jupyter笔记本,对我来说它还不如MathCad那么简单,但我会试试看。使用Jupyter时,我打印公式时遇到问题:我想自动打印公式的两边 我想要的是: 我得到的是: 我试过的 ccode不返回latex,总是键入“assign_to”很无聊 您可以使用sympy.printing.latex 有关更多

我正在寻找一种替代MathCad的方法来进行简单的计算,但我想让表达式看起来像我使用的笔和纸一样,让不懂编程的人更容易阅读。我试过斯维夫,克尼特,但我不满意。我最近发现了带有SymPy的Jupyter笔记本,对我来说它还不如MathCad那么简单,但我会试试看。使用Jupyter时,我打印公式时遇到问题:我想自动打印公式的两边

我想要的是:

我得到的是:

我试过的 ccode不返回latex,总是键入“assign_to”很无聊

您可以使用sympy.printing.latex

有关更多信息,请参阅以下链接


如果需要更方便的方法,可以按如下方式定义包装函数

class Equation(object):    
    def __init__(self, left, right, mode='latex'):        
        self.mode = mode
        self.left = left
        self.right = right

        self._eq = sym.Eq(left, right)
        self._latex = sym.latex(self._eq)

    def __repr__(self):
        if self.mode == 'latex':
            return self._latex.__repr__()
        elif self.mode == 'sympy':
            return self._eq.__repr__()

    def __str__(self):
        if self.mode == 'latex':
            return self._latex
        elif self.mode == 'sympy':
            return self.eq.__str__()

    def eq(self):
        return self._eq

    def latex(self):
        return self._latex

    @property
    def mode(self):
        return self._mode

    @mode.setter
    def mode(self, val):
        self._mode = val

    @property
    def left(self):
        return self._left
    @left.setter
    def left(self, val):
        self._left = sym

    @property
    def right(self):
        return self._right

    @right.setter
    def right(self, val):
        self._right = val
# end of class 

如果要打印方程式,需要使用
sympy.Eq
=
操作符只是在Python中分配变量,这意味着在您的示例中,Python变量
R\u R
被分配给SymPy表达式
(c\u 1+(c\u 2*x/G)+c\u 3*V)*G

一般来说,在Python中,与对象及其指定的变量没有反向关联。表达式无法“知道”它被分配给名为
R\u R
的变量

相反,您需要创建一个名为
R\u R
的符号,并使用
Eq(R\u R,(c\u 1+(c\u 2*x/G)+c\u 3*V)*G)


另请参见和。

谢谢您的回答,但我通常会使用30个类似于此的公式,我正在寻找更简单、更快的公式。