Мне интересно, как Python (3.3.0) печатает сложные числа. Я ищу объяснение, а не способ изменить печать.
Пример:
>>> complex(1,1)-complex(1,1)
0j
Почему он просто не печатает "0"? Мое предположение: сохранить вывод сложного типа.
Следующий пример:
>>> complex(0,1)*-1
(-0-1j)
Ну, простой "-1j" или "(-1j)" сделал бы. И почему "-0"?? Разве это не так, как +0? Это не похоже на проблему округления:
>>> (complex(0,1)*-1).real == 0.0
True
И когда мнимая часть становится положительной, -0 исчезает:
>>> complex(0,1)
1j
>>> complex(0,1)*-1
(-0-1j)
>>> complex(0,1)*-1*-1
1j
Еще один пример:
>>> complex(0,1)*complex(0,1)*-1
(1-0j)
>>> complex(0,1)*complex(0,1)*-1*-1
(-1+0j)
>>> (complex(0,1)*complex(0,1)*-1).imag
-0.0
Я что-то пропустил?