1
resposta

[Dúvida] Está conforme a atividade?

import time

segundos = 10

for t in range(segundos, 0, -1):
    time.sleep(1)

    if t == 10:
        print("Faltam apenas 10 segundos - Não perca essa oportunidade!")

    elif t == 8:
        print("Faltam apenas 8 segundos - Não perca essa oportunidade!")

    elif t == 6:
        print("Faltam apenas 6 segundos - Não perca essa oportunidade!")

    elif t == 4:
        print("Faltam apenas 4 segundos - Não perca essa oportunidade!")

    elif t == 3:
        print("A contagem continua: 3 segundos restantes.")

    elif t == 2:
        print("Faltam apenas 2 segundos - Não perca essa oportunidade!")

    elif t == 1:
        print("Aproveite a promoção agora!")
1 resposta

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:

  1. Pares: Se o resto da divisão por 2 for zero (t % 2 == 0).
  2. Í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.

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