[EMAIL PROTECTED] wrote:

Have a look at this:

-123**0
-1


The result is not correct, because every number (positive or negative)
raised to the power of 0 is ALWAYS 1 (a positive number 1 that is).

The problem is that Python parses -123**0 as -(123**0), not as
(-123)**0.

I suggest making the Python parser omit the negative sign if a
negative number is raised to the power of 0. That way the result will
always be a positive 1, which is the mathematically correct result.

This is a rare case when the parser is fooled, but it must be fixed in
order to produce the correct mathematical result.

Others have pointed out why this is not a parse error, as it's parsed as -(123**0), not (-123)**0, which is apparently what you meant.

Note, however, that even normal mathematical conventions follow this same rule. If you were to write

          2
        -x

as part of a mathematical equation, this means (translated to Python) -(x**2), not (-x)**2.

--
Erik Max Francis && [EMAIL PROTECTED] && http://www.alcyone.com/max/
 San Jose, CA, USA && 37 18 N 121 57 W && AIM, Y!M erikmaxfrancis
  I sleep and dream that life is / All beauty
   -- Lamya
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to