Olá, Murilo!
O problema que você está enfrentando é que o print(timer, end='\r')
não está funcionando como esperado.
O que acontece é que o caractere especial \r
é usado para retornar o cursor para o início da linha. No entanto, dependendo do ambiente em que você está executando o código, isso pode não funcionar corretamente.
Uma alternativa para resolver esse problema é utilizar a biblioteca sys
e o método sys.stdout.write()
para imprimir a contagem regressiva. Aqui está um exemplo de como você pode fazer isso:
import time
import sys
def contagem_regressiva(intervalo_em_segundos):
while intervalo_em_segundos:
mins, secs = divmod(intervalo_em_segundos, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
sys.stdout.write('\r' + timer)
sys.stdout.flush()
time.sleep(1)
intervalo_em_segundos -= 1
print('\nFinal do intervalo!')
contagem_regressiva(5)
Dessa forma, a contagem regressiva será impressa corretamente, substituindo a linha anterior a cada segundo.
Espero ter ajudado e bons estudos!