gpt4 book ai didi

python - 为什么 sympy.init_printing 会更改集合表示法?

转载 作者:行者123 更新时间:2023-11-28 17:20:41 26 4
gpt4 key购买 nike

当我调用 sympy.init_printing() 时,设置符号从 {a, b, c} 更改为 set([a, b, c] )。为什么会这样?

In [1]: import sympy

In [2]: (x, y, z) = sympy.symbols("x y z")

In [3]: x+y**z
Out[3]: x + y**z

In [4]: (x+y**z).free_symbols
Out[4]: {z, y, x}

In [5]: sympy.init_printing()

In [6]: x+y**z
Out[6]:
z
x + y

In [7]: (x+y**z).free_symbols
Out[7]: set([x, y, z])

In [8]: {1, 2, 3}
Out[8]: set([1, 2, 3])

(它还改变了项目的顺序,如图所示)

最佳答案

这是 Python 2 与 3 的问题。在 Python 2 中,集合的打印方式类似于 set([...]),因为直到 Python 2.7 才添加 {...} 集合文字。 SymPy 打印机是在 Python 3 之前制作的。

在 SymPy 版本 1.0 之后,SymPy 不再支持 Python 2.6,因此这已在 SymPy master 中修复,始终使用 {...}(即使在 Python 2 中)在 https://github.com/sympy/sympy/pull/11116 打印对于字符串打印机,但显然我错过了 pretty-print 也这样做。我已经在 https://github.com/sympy/sympy/pull/12087 进行了修复.

因此,简而言之,在这些更改之后(即在 SymPy 的开发版本和所有 future 版本中),SymPy 打印将使用 {...} 符号打印集。

关于python - 为什么 sympy.init_printing 会更改集合表示法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com