Two perfect answers we have here,
Anthon made it very clear to understand, Basically, the print line technically does not run (print) until the next line has finished.
Technically the line does run it just stays unbuffered until the
next line has finished running.
This might cause a bug for some people who uses the sleep
function after running a print
function expecting to see it prints before the sleep
function started.
So why am I adding another answer?
The Future Has Arrived And I Would Like To Take The Time And Update You With It:
from __future__ import print_function
First of all, I believe this was an inside joke meant to show an error: Future is not defined ^_^
I'm looking at PyCharm's documentation right now and it looks like they added a flush method built inside the print function itself, Take a look at this:
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
"""
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
"""
pass

So we might be able to use: (Not sure if the usage order of the parameters should be the same)
from __present__ import print_function
from time import sleep
print('Hello World', flush=True)
sleep(5)
Or This:
print('Hello World', file=sys.stdout , flush=True)
As Anthon said:
If you run this, you will see that the prompt string does not show up
until the sleep ends and the program exits. If you uncomment the line
with flush, you will see the prompt and then have to wait 5 seconds
for the program to finish
So let's just convert that to our current situation:
If you run this, you will see the prompt and then have to wait 5 seconds
for the program to finish, If you change the line
with flush to flush=False
, you will see that the prompt string does not show up
until the sleep ends and the program exits.