Почему операторы печати python, содержащие аргументы end =, ведут себя по-разному в циклах while?

Я использую Python версии 2.7.3 на MacOSX.

Рассмотрим этот блок кода:

from __future__ import print_function
import time
x = 0
while x < 5:
    print(x)
    x += 1
    time.sleep(1)

Если я запускаю этот скрипт, я наблюдаю результат, который я ожидаю: числа0&nbsp;через4&nbsp;с\n&nbsp;символ добавляется к каждому номеру. Кроме того, каждое число отображается после одной секунды паузы.

0
1
2
3
4

Теперь рассмотрим этот блок кода:

from __future__ import print_function
import time
x = 0
while x < 5:
    print(x, end='')
    x += 1
    time.sleep(1)

Выход - то, что я ожидаю,01234&nbsp;без\nх, носинхронизация&nbsp;неожиданно Вместо отображения каждой цифры после односекундной паузы процесс ждет четыре секунды, а затем отображает все пять чисел.

Почемуprint('string')&nbsp;вести себя иначе, чемprint('string', end='')&nbsp;в то время как петли? Есть ли способ отображать символы без перевода строки, одну секунду за раз? Я пыталсяsys.stdout.write(str(x)), но ведет себя так же, какprint(end='').