python `print` не работает в цикле

У меня есть несколько циклов вместе и сон в самом внутреннем цикле. например:

from time import sleep for i in range(10): print i, for j in range(-5,5): if j > 0: print '.', else: print 'D', sleep(1) print '' 

если вы запустите код, вы можете ожидать получить значение i после него D sleep 1 second и еще один D и снова спать до конца.

но результат разницы, он ждет 10 секунд и печатает всю строку 0 DDDDDD . . . . 0 DDDDDD . . . . и снова ожидание печати следующей строки.

Я обнаружил, что запятая в конце печати вызывает эту проблему. Как я могу это решить?

  • python 2.7 нижний регистр
  • Ошибка авторизации сбоев SSLv3 с urllib2
  • Как вызвать метод __init__ базового класса из дочернего класса?
  • Отслеживание неявных преобразований Unicode в Python 2
  • Установка PIL с пипсом
  • Запустить полностью независимый процесс
  • Использование фигурных скобок для инициализации набора
  • Как установить пакет xgboost в python (платформа Windows)?
  • 2 Solutions collect form web for “python `print` не работает в цикле”

    Из-за существования запятой выходные буферы до \n .

    Вы должны очистить stdout после каждой печати или использовать sys.stdout.write и буфер для очистки.

    Определите свой метод печати:

     import sys def my_print(text): sys.stdout.write(str(text)) sys.stdout.flush() 

    и в конце строки напечатайте a \n

    Проблема с использованием print <something>, является буферизацией и печатью только тогда, когда идентификатор результата готов к печати.

    Вы можете решить эту print_function с помощью print_function с __future__ (что также будет соответствовать Python 3):

     from __future__ import print_function from time import sleep import sys for i in range(10): print(i, end='') for j in range(-5,5): if j > 0: print('.', end='') else: print('D', end='') sys.stdout.flush() sleep(1) print('') 
    Interesting Posts

    Вызов метода перехвата в Python

    Создание CMake из LLVM clang завершается с ошибкой «Неожиданный сбой выполнения llvm-build: Traceback (…) import llvmbuild"

    переменные класса являются общими для всех экземпляров в python?

    Передача значения из скрипта PHP в скрипт Python

    Перекрытие совпадений с finditer () в Python

    База данных не обновляется автоматически с помощью MySQL и Python

    Получите первые N пар ключей из упорядоченного словаря к другому

    Подкласс python доступа к переменной класса родительского

    Как показать графики matplotlib в python

    Самый эффективный способ удаления нескольких подстрок из строки?

    Есть ли какая-нибудь из этих четырехъядерных библиотек?

    Python / wxPython: непрерывная работа в фоновом режиме

    Извлечение значений между двумя строками в текстовом файле с использованием python

    Python Tkinter: добавление виджета в диалоговые окна файлов

    scipy.misc.derivative для функции множественного аргумента

    Python - лучший язык программирования в мире.