# 'complex' function with string argument.

Mark H Harris harrismh777 at gmail.com
Mon Mar 17 17:18:56 CET 2014

```On 3/15/14 11:26 AM, Jayanth Koushik wrote:

This is a very interesting philosophical question, one which I am
surprised no one has answered; although, I think the reason for that
might be entirely obvious.

doc says "whatever you do, don't push the purple button," well, leave
the purple button alone.      :)   (I don't know, push it if you want)

If you monitor the PEP process, or have ever taken part in python-ideas,
or python-dev (either directly, or just lurking) you will notice that
python is developed through a very interesting active committee process
(that is really something phenomenal; cool community).

How should one spell a complex number? Should we use i or j ? Should the
imaginary part be set off somehow?  Should literals be parsed
differently (or consistently) with correctly formed strings?  Who knows,
beats me.

consider:
>>> complex( 3   +  2   j)
SyntaxError: invalid syntax
>>> complex( 3   +2j  )
(3+2j)
>>>
I don't know... you tell me.

>>> complex('3+2j')
(3+2j)
>>> complex('3 +2j')
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
complex('3 +2j')
ValueError: complex() arg is a malformed string
>>>

Again, beats me.  I just don't know.

But I do know that the spelling book says, Do it this way:
complex('3+2j').

Seems simple enough.

Philosophically, I tend to think about it this way. A complex number is
like any other number. I would not form a PI string like this> ' 3 .14 1
5 9265 3 . . .'   I would rather see it formed like so, '3.1415926535'

This  '3 + 2j'  is not a number, its an algebraic sum.

This  '3+2j'  is a complex number.  Ok, maybe not, but its closer to
what we expect (I'm sorry, but I like  i  instead  of  j  )

Also, philosophically, C ignores white space;  python does not.

I agree with this now; before I did not. White space is just as much a
part of how interpretation occurs, within symbol processing/parsing.
Some choices are arbitrary, some are community concurrence (PEPs), some
are philosophical, and most are just convenient intuition.

My Greek professor used to say, "there is no 'why' in Greek".

Python is similar.

Cheers

```