Repeated addition and comparisons of floating point numbers
The reason you are seeing these results are not due to the memory limits of your computer, but rather of the limits of the encoding of "floating point" numbers.  Python uses 64 bit floats (aka double precision floating point numbers), which are well described on wikipedia: https://en.wikipedia.org/wiki/Double-precision_floating-point_format

In short, there are only 52 bits for the significand and 11 bits for the exponent.  $2^{1023}$ is the highest exponent that can be represented.