On 03/31/2013 02:56 AM, morphex wrote:
Hi.

I was just doodling around with the python interpreter today, and here is the 
dump from the terminal:

morphex@laptop:~$ python
Python 2.7.3 (default, Sep 26 2012, 21:53:58)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
1**2
1
1**2**3
1
1**2**3**4
1L
1**2**3**4**5
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
MemoryError


Does anyone know why this raises a MemoryError?  Doesn't make sense to me.



Perhaps you didn't realize that the expression will be done from right to left. So first it calculates 4**5 which is 1024

Then it calculates 3**1024, which has 488 digits. then it calculates 2 to that power, which is a number large enough to boggle the mind. That number's storage needs makes a few gigabytes seem like a molecule in the ocean.

Anyway, it never gets around to doing the 1**  part.

On the other hand, perhaps you wanted to do a different calculation:

>>> ((((1**2)**3)**4)**5)
1






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

Reply via email to