jupyter noteb中的自定义打印

2024-05-12 21:42:30 发布

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

我正在寻找MathCad的替代品来进行简单的计算,但我希望表达式看起来像我用的是笔和纸,让不懂编程的人容易阅读。我试过说脏话,奈特,但我不满意。我最近发现了带有SymPy的Jupyter笔记本,它对我来说仍然没有MathCad那么简单,但是我会试试。对于Jupyter,我在打印公式时遇到了问题:我想自动打印等式的两边。在

我想要的:

enter image description here

我得到的是:

enter image description here

我尝试了什么

ccode不返回latex,总是键入“assign_to”很无聊 enter image description here


Tags: 替代品键入表达式编程笔记本jupyterlatex公式
3条回答

如果需要更方便的方法,可以定义包装器函数,如下所示。在

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 

enter image description here

你可以用sympy.印刷.乳胶. 在

SymPy using LaTeX printing

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

http://docs.sympy.org/dev/modules/printing.html?highlight=sympy.printing#module-sympy.printing.latex

如果要打印公式,则需要使用sympy.Eq=运算符只是在Python中分配变量,这意味着在您的示例中,Python变量{}被分配给SymPy表达式(c_1 + (c_2*x/G) + c_3*V)*G。在

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

相反,您需要创建一个名为R_r的符号并使用Eq(R_r, (c_1 + (c_2*x/G) + c_3*V)*G)。在

另请参见http://docs.sympy.org/latest/tutorial/gotchas.htmlhttp://nedbatchelder.com/text/names.html。在

相关问题 更多 >