Sto provando a stampare alcune divisioni con Sympy ma ho notato che non è stata allineata.Non allineato Simpatia della divisione di 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".
Motivo/correzione per questo?
EDIT: ho fatto un sacco di reverse-engineering utilizzando inspect.getsource
e inspect.getsourcefile
ma non ha davvero aiutare alla fine.
Pretty Printing in Sympy sembra fare affidamento sulla Prettyprinter di Jurjen Bos.
import sympy
from sympy.printing.pretty.stringpict import *
sympy.init_printing(use_unicode=True)
prettyForm("-1")/prettyForm("-5")
# Displays:
# -1
# --
# -5
in modo che non visualizzare allineati, ma non posso farlo da utilizzare unicode.
Il PrettyPrinter viene chiamata dal file sympy/printing/pretty/pretty.py
nel metodo PrettyPrinter._print_Mul
che semplicemente return prettyForm.__mul__(*a)/prettyForm.__mul__(*b)
con, ho pensato, e a
b
semplicemente essere ['-1']
e ['-5']
, ma che non avrebbe funzionato.
Confermo questo comportamento. Sembra che si verifichi quando sia il numeratore che il denominatore sono valori a una cifra negativa. – dlask
https://github.com/sympy/sympy/issues/9450 – JeromeJ