On 01/08/2015 09:33 PM, Devin Jeanpierre wrote:
I noticed some very PHP-ish behavior today:

import decimal
x = 0
y = float(x)
z = decimal.Decimal(x)
x == y == z == x
True
x ** x
1
y**y
1.0
z**z
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "/usr/lib/python2.7/decimal.py", line 2216, in __pow__
     return context._raise_error(InvalidOperation, '0 ** 0')
   File "/usr/lib/python2.7/decimal.py", line 3872, in _raise_error
     raise error(explanation)
decimal.InvalidOperation: 0 ** 0


I'd file a bug report but I'm anticipating some rational (heh)
explanation. Any ideas?

Python 3.4 also raises this exception, but the error message is less
informative. ("decimal.InvalidOperation: [<class
'decimal.InvalidOperation'>]").


What you don't say is which behavior you actually expected. Since 0**0 is undefined mathematically, I'd expect either an exception or a NAN result.


--
DaveA
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to