Мне нужно динамически распечатать все встроенное в цикл for в записной книжке IPython. Я использую python 2.7 . Я использовал код:
for i in xrange(10):
print "." ,
#some computation and no print statement
И даже использовали:
for i in xrange(10):
print "\b."
#some computation and no print statement
Но оба вышеперечисленных решения, похоже, не работают в ноутбуках IPython.
Мне нужно: ..........
и то, что печатают приведенные выше фрагменты:
.
.
.
.
.
.
.
.
.
.
Любая помощь приветствуется.
5 ответов
Как насчет
from __future__ import print_function
for i in xrange(10):
print(".", end=' ')
Вы можете сделать это с помощью модуля sys
.
import sys
for i in xrange(10):
sys.stdout.write(".")
Функция print
- это оболочка, которая преобразует объект в string
и форматирует вывод.
Вы можете сделать то же самое:
print('.' * 10)
Если вам нужен цикл for, вы можете присвоить переменную end методу печати следующим образом:
for i in range(10):
print('.', end="")
Это будет работать как на Python 2, так и на Python 3:
from __future__ import print_function
for i in range(10):
print('.', end='')
Вы также можете передать аргумент ключевого слова flush=True
, чтобы заставить его немедленно очистить буфер.
Вы также можете перезаписать предыдущую строку, используя '\r'
, это простой пример:
import time
for i in range(10):
time.sleep(0.2)
print('\r{} / 10'.format(i + 1, 10), end='')
Я могу не понять ваш вопрос, но пробовали ли вы использовать:
print "."*10
Вы получите:
..........
Похожие вопросы
Новые вопросы
python
Python — это мультипарадигмальный многоцелевой язык программирования с динамической типизацией. Он предназначен для быстрого изучения, понимания и использования, а также обеспечивает чистый и унифицированный синтаксис. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Если у вас есть вопросы о версии Python, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas, NumPy) укажите это в тегах.