In some terminals, python buffers the output until it has enough and then dumps it to the console. IIRC it is like this because the console can be pretty slow, so by buffering you can do more calculations instead of always waiting for the console.
It should always flush at the end of the line though, no?
I initially put a sleep in, it's unnecessary in this case.