Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Contagem Regressiva

import time


def exibir_mensagem(numero: int) -> str:
    """
    Cria mensagem para a contagem regressiva de acordo com a paridade do número.
    
    Args: 
         numero(int): Numero da contagem atual.
    
    Returns:
         mensagem formatada como string(str).
    
    """
    if numero % 2 == 0:
        return f'Faltam apenas {numero} segundos - Não perca essa oportunidade!'
    else:
        return f'A contagem continua: {numero} segundos restantes.'


def iniciar_contagem_regressiva(tempo_inicial: int, mensagem_final: str = 'Aproveite a Promoção agora!') -> None:
    """
    Executa a contagem regressiva exibindo mensagens a cada segundo.
    
    Args:
         tempo_inicial(int): tempo inicial da contagem em segundos.
         mensagem_final(str): mensagem que será exibida no final da contagem.
    """           
    for numero in range(tempo_inicial, 0, -1):
        print(exibir_mensagem(numero))
        time.sleep(1)
    print(mensagem_final)
        

if __name__ == '__main__':
    tempo_contagem = 10
    iniciar_contagem_regressiva(tempo_contagem)
1 resposta
solução!

Olá, Matheus! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Percebi que você dominou o uso de funções com parâmetros e retorno, aplicou muito bem o controle de fluxo com if e for para conduzir a lógica da contagem regressiva e ainda demonstrou compreender a relevância de time.sleep() para temporizar ações em tempo real, o que é ótimo para simular timers ou animações.

Uma sugestão interessante para evoluir ainda mais é usar datetime.timedelta com o objetivo de exibir o tempo restante de forma mais elegante, especialmente quando o contador for maior. Veja só:

import time
from datetime import timedelta

def exibir_mensagem(numero: int) -> str:
    tempo_formatado = str(timedelta(seconds=numero))
    if numero % 2 == 0:
        return f'Faltam apenas {tempo_formatado} - Não perca essa oportunidade!'
    else:
        return f'A contagem continua: {tempo_formatado} restantes.'

def iniciar_contagem_regressiva(tempo_inicial: int, mensagem_final: str = 'Aproveite a Promoção agora!') -> None:
    for numero in range(tempo_inicial, 0, -1):
        print(exibir_mensagem(numero))
        time.sleep(1)
    print(mensagem_final)

if __name__ == '__main__':
    tempo_contagem = 10
    iniciar_contagem_regressiva(tempo_contagem)

Resultado:

Faltam apenas 0:00:10 - Não perca essa oportunidade!
A contagem continua: 0:00:09 restantes.
Faltam apenas 0:00:08 - Não perca essa oportunidade!
A contagem continua: 0:00:07 restantes.
Faltam apenas 0:00:06 - Não perca essa oportunidade!
A contagem continua: 0:00:05 restantes.
Faltam apenas 0:00:04 - Não perca essa oportunidade!
A contagem continua: 0:00:03 restantes.
Faltam apenas 0:00:02 - Não perca essa oportunidade!
A contagem continua: 0:00:01 restantes.
Aproveite a Promoção agora!

Essa abordagem ajuda a tornar o tempo mais legível e profissional, além de ser útil em contagens maiores com minutos/horas.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!