2017-04-14 2 views
0

Ich wollte in der Lage sein, die str Konvertierungsfunktion in Python als die hübsche Druckfunktion in sympy (oder drucken, als ob init_printing() wurde mit einem Argument (en)) aufgerufen werden. Gerade jetzt, wenn man eine solche Funktion aufruft, ändert sie nur die print Funktion, die auf den Bildschirm druckt. Wie bekomme ich str, um sich als pprint oder andere Optionen zu verhalten? Kurz gesagt, es wäre toll, die Ausgabe von print irgendwie in einer Zeichenkette und einer Variablen in python selbst abzufangen/abzufangen.Wie bekommt man String-Konvertierung in sympy um sich als hübscher Druck zu verhalten?

Zum Beispiel möchte ich in der Lage sein, zu tun:

from sympy import * 
x,y=symbols('x y') 
x_eq_y = Eq(x,2*y) 
x_eq_y_str = str(x_eq_y) # holds 'Eq(x,2*y)' but I want it to hold 'x = 2y' or a latex formula etc 

ist es möglich, das zu tun?

+0

Sind Sie bereit, eine Klasse zu bauen, die von 'Eq' erbt? –

+0

@StephenRauch sicher! Ich bin offen für jeden Vorschlag. Ich hatte jedoch vor, mich nicht nur auf das besondere Beispiel zu konzentrieren, das ich oben gegeben habe. Ganz allgemein, was der nette Druck bewirkt, und bekommt seine Strings nicht nur auf den Bildschirm gedruckt. – Pinocchio

Antwort

1

str ist nur eine von printing functions in SymPy verfügbar. Wenn Sie einen anderen verwenden möchten, verwenden Sie ihn:

x_eq_y_str = latex(x_eq_y) # get 'x = 2 y' 
x_eq_y_str = pprint(x_eq_y) # get x = 2⋅y 
x_eq_y_str = pprint(x_eq_y, use_unicode=False) # get x = 2*y 
Verwandte Themen