Mejor respuesta
Cuando una operación aritmética excede los límites del tipo de variable, se genera un OverflowError. Los enteros largos asignan más espacio a medida que crecen los valores, por lo que terminan generando MemoryError. Sin embargo, el manejo de excepciones de punto flotante no está estandarizado. Los enteros regulares se convierten en valores largos según sea necesario.
Ejemplo
El código dado se reescribe para detectar la excepción de la siguiente manera
i=1
try:
f = 3.0**i
for i in range(100):
print i, f
f = f ** 2
except OverflowError as err:
print "Overflowed after ", f, err
Respuesta
Al igual que la mayoría de los otros lenguajes de programación, OverflowError en Python indica que una operación aritmética ha excedido los límites del tiempo de ejecución actual de Python. Por lo general, esto se debe a valores flotantes excesivamente grandes, ya que los valores enteros que son demasiado grandes optarán por generar MemoryErrors en su lugar.