SymPy - drukowanie
W SymPy dostępnych jest kilka drukarek. Poniżej znajduje się częściowa lista -
- str
- srepr
- Ładna drukarka ASCII
- Ładna drukarka Unicode
- LaTeX
- MathML
- Dot
Obiekty SymPy mogą być również wysyłane jako dane wyjściowe do kodu różnych języków, takich jak C, Fortran, Javascript, Theano i Python.
SymPy używa znaków Unicode do renderowania danych wyjściowych w postaci ładnego wydruku. Jeśli używasz konsoli Pythona do wykonywania sesji SymPy, najlepsze ładne środowisko drukowania jest aktywowane przez wywołanie funkcji init_session ().
>>> from sympy import init_session
>>> init_session()
Konsola IPython dla SymPy 1.5.1 (Python 3.7.4-64-bit) (typy naziemne: python).
Te polecenia zostały wykonane -
>>> from __future__ import division
>>> from sympy import *
>>> x, y, z, t = symbols('x y z t')
>>> k, m, n = symbols('k m n', integer=True)
>>> f, g, h = symbols('f g h', cls=Function)
>>> init_printing()
Dokumentację można znaleźć pod adresem https://docs.sympy.org/1.5.1/.
>>> Integral(sqrt(1/x),x)
$\int \sqrt\frac{1}{x} dx$
Jeśli LATEX nie jest zainstalowany, ale jest zainstalowany Matplotlib, użyje silnika renderującego Matplotlib. Jeśli Matplotlib nie jest zainstalowany, używa ładnej drukarki Unicode. Jednak notatnik Jupyter używa MathJax do renderowania LATEX-a.
W terminalu, który nie obsługuje Unicode, używana jest ładna drukarka ASCII.
Aby użyć drukarki ASCII, użyj funkcji pprint () z właściwością use_unicode ustawioną na False
>>> pprint(Integral(sqrt(1/x),x),use_unicode=False)
Dostęp do drukarki pretty Unicode można również uzyskać z pprint () i pretty (). Jeśli terminal obsługuje Unicode, jest używany automatycznie. Jeśli pprint () nie jest w stanie wykryć, że terminal obsługuje Unicode, możesz przekazać use_unicode = True, aby zmusić go do używania Unicode.
Aby otrzymać wyrażenie LATEX, użyj funkcji latex ().
>>> print(latex(Integral(sqrt(1/x),x)))
\int \sqrt{\frac{1}{x}}\, dx
Możesz także użyć drukarki mathml. w tym celu zaimportuj funkcję print_mathml. Wersja tekstowa jest uzyskiwana przez funkcję mathml ().
>>> from sympy.printing.mathml import print_mathml
>>> print_mathml(Integral(sqrt(1/x),x))
<apply>
<int/>
<bvar>
<ci>x</ci>
</bvar>
<apply>
<root/>
<apply>
<power/>
<ci>x</ci>
<cn>-1</cn>
</apply>
</apply>
</apply>
>>>mathml(Integral(sqrt(1/x),x))
'<apply><int/><bvar><ci>x</ci></bvar><apply><root/><apply><power/><ci>x</ci><cn>-1</cn></apply></apply></apply>'