Вы должны добавить end='\r'
к своему выражению печати, так что это небольшое изменение должно сделать работу, как вы хотели:
import time
signs = ["|", "/", "-", "\\"]
while True:
for i in range(4):
print(signs[i].format(i), end='\r')
time.sleep(1)
По умолчанию это \n
, поэтому следующий символ строки, но с\r
( возврат каретки ) текущая строка будет перезаписана при следующем выводе.
Это может вызвать проблемы, хотя, если предыдущий вывод длиннее последующего, то он перезаписывает только столько символов, сколько имеет новый вывод, остальные остаются.В таких случаях это может помочь добавить несколько пробелов в конце вывода, чтобы заполнить разницу в длине последовательности.
Обычно поведение зависит от используемых выходных данных , т. Е. Shell, Idle, запись в файл, Eclipse, PyCharm и т. Д. Некоторые выходные оболочки могут не поддерживать эту команду.