Oii Samuel,
Achei excelente a sua iniciativa de importar a biblioteca time e usar o sleep(1). O exercício não pedia isso, mas você foi além e fez o programa se comportar como uma contagem regressiva real, esperando um segundo entre cada mensagem. Esse tipo de curiosidade é muito importante.
Sobre a lógica do exercício, notei que você criou uma condição específica (if/elif) para cada número (10, 8, 6, etc.). Embora funcione para uma contagem pequena, imagine se a contagem fosse de 1000 até 0? Escrever mil linhas de if seria inviável.
Na programação, sempre buscamos padrões para automatizar as coisas. O padrão aqui é verificar se o número é Par ou Ímpar. Pra isso, usamos o operador matemático de módulo (%), que verifica o resto da divisão:
- Pares: Se o resto da divisão por 2 for zero (
t % 2 == 0). - Ímpares: Qualquer outro caso (
else).
Além disso, a mensagem "Aproveite a promoção agora!" deve aparecer apenas quando o laço terminar, ou seja, fora da identação do for.
Veja como ficaria seu código aplicando essa lógica automática:
import time
segundos = 10
for t in range(segundos, 0, -1):
time.sleep(1)
# Verifica se é par (resto da divisão por 2 é igual a 0)
if t % 2 == 0:
print(f"Faltam apenas {t} segundos - Não perca essa oportunidade!")
else:
print(f"A contagem continua: {t} segundos restantes.")
# Este print fica fora do loop (sem o recuo), para executar só quando acabar
print("Aproveite a promoção agora!")
Dessa forma, seu código fica preparado para funcionar com qualquer quantidade de segundos, sem que você precise escrever mais linhas.
Continue explorando e testando novas bibliotecas.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!