Задать вопрос
@sergey4443

Обновление строки в консоле Python?

for i in range(3):
    print(i)


Как сделать чтобы каждый раз число заменялось на новое? Типа как счетчик или секундомер.

Не так

0
1
2

И не так
0 1 2
  • Вопрос задан
  • 167 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Lord_of_Rings
@Lord_of_Rings
Дунадан - северный странник. Злой, но очень добрый
for i in range(3):
    print('\b', flush=True, end='')
    print(i)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@DenisShahbazyan
from sys import stdout
from time import sleep


PAUSE = 1
START_STEP = -15
END_STEP = 15

for sec in range(START_STEP, END_STEP):
    if sec == START_STEP:
        stdout.write(f'Timer: {sec}')
    else:
        for _ in range(len(str(prev_sec))):
            stdout.write('\033[D \033[D')
        stdout.write(f'{sec}')
    stdout.flush()
    prev_sec = sec
    sleep(PAUSE)

print()
Ответ написан
Комментировать
@Vegas_Real
from time import sleep

pause = 0.3
start = -15
stop = 16

print('Timer: ', end='')

for sec in range(start, stop):
    if sec > start:
        print('\b' * cut_num, end='')
    print(f'{sec}', end='')
    cut_num = len(f'{sec}')
    sleep(pause)


flush тут вообще ни на что не влияет.
Вывод можно было через переменную реализовать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы