Mi chiedo come Python (3.3.0) stampa numeri complessi. Sto cercando una spiegazione, non un modo per cambiare la stampa.Formato del numero complesso in Python
Esempio:
>>> complex(1,1)-complex(1,1)
0j
Perché non basta stampare "0"? La mia ipotesi è: mantenere l'output di tipo complesso.
Successivo esempio:
>>> complex(0,1)*-1
(-0-1j)
Ebbene, un semplice "-1j" o "(-1j)" avrebbe fatto. E perché "-0" ?? Non è lo stesso di +0? Non sembra essere un problema di arrotondamento:
>>> (complex(0,1)*-1).real == 0.0
True
E quando la parte immaginaria diventa positivo, il -0 svanisce:
>>> complex(0,1)
1j
>>> complex(0,1)*-1
(-0-1j)
>>> complex(0,1)*-1*-1
1j
Ancora un altro esempio:
>>> 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
Am Mi manca qualcosa qui?
Per quanto riguarda la parte '0j', è pratica comune in python che' eval (repr (x)) == x' –