打印正确的数学格式

时间:2014-08-15 12:23:25

标签: ipython sympy

当我使用sympy得到8的平方根时,输出很难看:

2*2**(1/2)

import sympy

In [2]: sympy.sqrt(8)

Out[2]: 2*2**(1/2)

有没有办法以正确的数学符号表示sympy打印输出(即使用正确的符号作为平方根)?

更新:

当我关注@pqnet的suggestions时:

from sympy import *
x, y, z = symbols('x y z')
init_printing()
init_session()

我收到以下错误:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-23-21d886bf3e54> in <module>()
      2 x, y, z = symbols('x y z')
      3 init_printing()
----> 4 init_session()

/usr/lib/python2.7/dist-packages/sympy/interactive/session.pyc in init_session(ipython, pretty_print, order, use_unicode, quiet, argv)
    154                 # and False means don't add the line to IPython's history.
    155                 ip.runsource = lambda src, symbol='exec': ip.run_cell(src, False)
--> 156                 mainloop = ip.mainloop
    157             else:
    158                 mainloop = ip.interact

AttributeError: 'ZMQInteractiveShell' object has no attribute 'mainloop'

2 个答案:

答案 0 :(得分:0)

最简单的方法是:

sympy.pprint(sympy.sqrt(8))

对我来说(使用rxvt-unicode和ipython),它给出了

    ___
2⋅╲╱ 2 

答案 1 :(得分:0)

在ipython笔记本中,您可以使用init_printing功能启用Sympy的图形数学排版:

import sympy
sympy.init_printing(use_latex='mathjax')

之后,sympy将拦截每个单元格的输出并使用数学字体和符号对其进行格式化。尝试:

sympy.sqrt(8)

另见: