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

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

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


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

Не так

0
1
2

И не так
0 1 2
  • Вопрос задан
  • 189 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Lord_of_Rings
@Lord_of_Rings Куратор тега Python
Дунадан - северный странник. Злой, но очень добрый
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 тут вообще ни на что не влияет.
Вывод можно было через переменную реализовать
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
Greenway Global Новосибирск
от 150 000 ₽
SPA2099 Москва
До 100 000 ₽
HR Prime Москва
от 300 000 до 3 800 000 ₽