我希望能够在python中获得str转换函数,以充当sympy中的漂亮打印函数(或打印,就像使用任何参数调用init_printing()一样)。现在,如果一个人调用了这样的函数,它只会更改打印到屏幕上的print函数。如何使str表现为pprint或其他选项?简而言之,能够以某种方式在字符串和python本身的变量中获取/拦截print的输出真是太棒了。

例如,我希望能够做到:

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


有可能这样做吗?

最佳答案

str只是SymPy中可用的printing functions之一。如果要使用另一个,请使用:

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


编辑:

使用sympy 1.4,pprint函数不会返回字符串。应改为:

    x_eq_y_str = pretty(x_eq_y)  # get  x = 2⋅y
    x_eq_y_str = pretty(x_eq_y,  use_unicode=False)  # get  x = 2*y

关于python - 如何在sympy中获得字符串转换以表现出漂亮的效果?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43420508/

10-15 05:30