gpt4 book ai didi

python - 为什么/如何 -1j 和 0-1j 变成不同的字符串?

转载 作者:行者123 更新时间:2023-11-30 22:19:15 27 4
gpt4 key购买 nike

为什么以及如何 -1j0 - 1j变成不同的字符串?

>>> a = -1j
>>> b = 0 - 1j
>>> a
(-0-1j)
>>> b
-1j

它们是相同类型的相同值:

>>> a == b
True
>>> type(a), type(b), type(a) is type(b)
(<class 'complex'>, <class 'complex'>, True)

但是两者strrepr将它们转换为不同的字符串:

>>> str(a), str(b)
('(-0-1j)', '-1j')
>>> repr(a), repr(b)
('(-0-1j)', '-1j')

为什么以及如何发生这种情况?

注意:这是在 Python 3.6.4 中。在 Python 2.7.14 中,它们都变成了 '-1j' .

最佳答案

a 的实数分量为 -0.0,而 b 的实数分量为 0.0。字符串表示中省略了 0.0

-1j 被视为 -(1j),其中 1j 的实部为 0.0。那个真实的组件被否定了。

0 - 1j中,两边的实部都是0,相减产生的实部为0。

在 Python 2 上,我认为 -1j 可能会遇到用于生成 -2147483648-9223372036854775808 的相同特殊情况(取决于平台) ) 计算结果为 int 而不是 long。特殊情况处理似乎会产生 0.0 的真实组件。

关于python - 为什么/如何 -1j 和 0-1j 变成不同的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49179124/

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