Próbuję ładnie wydrukować niektóre działy za pomocą Sympy, ale zauważyłem, że nie są wyrównane.Niewyrównana sympatyczne sympatyczne podszycie Sympy
import sympy
sympy.init_printing(use_unicode=True)
sympy.pprint(sympy.Mul(-1, sympy.Pow(-5, -1, evaluate=False), evaluate=False))
# Output:
# -1
# ───
# -5 # Note that "-5" is displayed slightly more on the right than "-1".
Powód/poprawka w tym?
EDIT: Zrobiłem dużo reverse-engineering, używając inspect.getsource
i inspect.getsourcefile
ale tak naprawdę nie angażować się w końcu.
Pretty Drukowanie w Sympy wydaje się polegać na Prettyprinter przez Jurjen Bos.
import sympy
from sympy.printing.pretty.stringpict import *
sympy.init_printing(use_unicode=True)
prettyForm("-1")/prettyForm("-5")
# Displays:
# -1
# --
# -5
Wyświetlane wyrównanie, ale nie mogę go użyć do unikodu.
PrettyPrinter jest wywoływana z pliku sympy/printing/pretty/pretty.py
w metodzie PrettyPrinter._print_Mul
który po prostu return prettyForm.__mul__(*a)/prettyForm.__mul__(*b)
z pomyślałem a
i b
prostu będąc ['-1']
i ['-5']
ale to nie będzie działać.
Potwierdzam to zachowanie. Wydaje się, że występuje, gdy licznik i mianownik są ujemnymi wartościami jednocyfrowymi. – dlask
https://github.com/sympy/sympy/issues/9450 – JeromeJ