DSM wrote:
 From the nothing-is-so-trivial-it's-not-worth-a-usenet-post file:

Shouldn't the default representation of complex numbers be like that of
floats? That is, have a decimal point?

 >>> 1
 1
 >>> 1.0
 1.0
 >>> 1j
 1j
 >>> 1.0j
 1j
 >>> 1.0+1.0j
 (1+1j)


In the relevant bit of floatobject.c, there's a comment explaining that
1.0 isn't accidental:

        /* Subroutine for float_repr and float_print.
           We want float numbers to be recognizable as such,
           i.e., they should contain a decimal point or an exponent.
           However, %g may print the number as an integer;
           in such cases, we append ".0" to the string. */

ISTM the same reasoning applies equally to complex numbers.

Not necessarily. The reason that having floats always have a decimal point is desirable is to ensure roundtripping through eval(repr(x)). The j is sufficient for complexes. There are no complex integers to confuse it with.

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to