Implementando Atualização Automática de Hora com Loop Infinito e Pausa em Python

Para exibir a hora atual de forma contínua no terminal, é necessário combinar duas funcionalidades essenciais: obtenção dinâmica da data/hora e execução repetida com intervalos controlados. Isso exige o uso do módulo time e de uma estrutura de repetição que não termine por si só — ou seja, um loop infinito.

Obtendo a hora formatada

O módulo time fornece diversas funções para manipulação temporal. Para exibir uma representação legível da hora local, usamos time.asctime(), que converte um objeto de tempo (como retornado por time.localtime()) em uma string no formato padrão ASCII:

import time
print(time.asctime())  # Ex: 'Wed Apr 10 15:23:47 2024'

Introduzindo pausas entre atualizações

Para evitar que o programa imprima milhares de linhas em frações de segundo, inserimos uma pausa deliberada com time.sleep(segundos). O argumento aceita valores inteiros ou de ponto flutuante, permitindo ajustes finos no intervlao:

  • time.sleep(1) → pausa de 1 segundo
  • time.sleep(0.5) → pausa de meio segundo
  • time.sleep(2.3) → pausa de 2,3 segundos

Criando um loop contínuo

Em vez de limitar a execução com uma condição variável (ex: while contador <= 5), usamos while True: — uma expressão sempre verdadeira que mantém o bloco em execução indefinidamente até interrupção externa (como Ctrl+C). É crucial garantir que o corpo do loop esteja corretamente indentado com 4 espaços (ou um tab), conforme exigido pela sintaxe do Python.

Exemplo completo: relógio em tempo real

Abaixo está uma versão consolidada que exibe a hora atual a cada segundo, sem interrupção automática:

import time

while True:
    momento_atual = time.asctime()
    print(momento_atual)
    time.sleep(1)

Salve esse código em um arquivo chamado relogio.py e execute-o via linha de comando:

python3 relogio.py

Para encerrar a execução, pressione Ctrl+C no terminal. O programa então lançará uma exceção KeyboardInterrupt e sairá normalmente.

Observações importantes

  • O valor True na condição do while deve ser escrito com inicial maiúscula — True, não true ou "true".
  • Não há necessidade de manter uma variável contadora se o objetivo é simplesmente repetir indefinidamente.
  • Evite usar time.sleep(i) com variáveis crescentes dentro do loop, pois isso levaria a pausas progressivamente maiores — inviabilizando a ideia de "atualização periódica".

Tags: Python time sleep while-loop real-time-clock

Publicado em 8-17 16:54