Message125104
complex("nan") raises "ValueError: complex() arg is a malformed string" while complex(float("nan")) returns (nan+0j). This was reported in http://bugs.python.org/issue2121 with the conclusion "wont fix".
complex("inf") has the same behaviors.
The implementation in complexobject.c says
/* a valid complex string usually takes one of the three forms:
<float> - real part only
<float>j - imaginary part only
<float><signed-float>j - real and imaginary parts
where <float> represents any numeric string that's accepted by the
float constructor (including 'nan', 'inf', 'infinity', etc.), and
<signed-float> is any string of the form <float> whose first
character is '+' or '-'.
This comment is wrong and it distracted me for a while as I tried to figure out why complex("nan") wasn't working. It should be fixed, with the word "including" replaced by "excluding".
I don't have a real need for complex("nan") support - this was of intellectual interest only. Also of intellectual interest, PyPy 1.4 does accept complex("nan") but converts complex("nan+nanj") to (nannanj), so it suffers from the strange corner cases which Raymond points out when advocating for "wont fix."
Because |
|
Date |
User |
Action |
Args |
2011-01-02 21:21:32 | dalke | set | recipients:
+ dalke, docs@python |
2011-01-02 21:21:32 | dalke | set | messageid: <1294003292.33.0.779224851357.issue10809@psf.upfronthosting.co.za> |
2011-01-02 21:21:30 | dalke | link | issue10809 messages |
2011-01-02 21:21:30 | dalke | create | |
|