Символ 9
, следующий за 0
, 1
, 2
и т. Д. После первой минуты, представляет собой просто 9
в 59
, который был напечатан в последнюю секунду первой минуты, поскольку у однозначных секунд недостаточно ширины, чтобы перезаписать 9
.Вы можете отформатировать вывод каждого числа шириной 2, и, поскольку здесь мы имеем дело со временем, добавьте числа с начальным 0:
import time
for i in range(24):
for a in range(60):
for s in range(60):
print('%02d:%02d:%02d' % (i, a, s), end='\r')
time.sleep(1)
Если вы запустите это в IDE, оно не будетвыводить что угодно, потому что вывод буферизуется до получения символа новой строки.Вы можете принудительно очистить вывод с помощью аргумента flush=True
, но тогда среда IDE по-прежнему не будет ничего выводить, поскольку символ \r
стирает вывод из-за предварительной обработки среды IDE.Вместо этого вы можете сначала очистить вывод перед печатью \r
:
import time
for i in range(24):
for a in range(60):
for s in range(60):
print('%02d:%02d:%02d' % (i, a, s), end='', flush=True)
time.sleep(1)
print('', end='\r')