Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Contagem regressiva

Boa noite,

Segue o código feito para o exercício de contagem regressiva

import time

def contagem_regressiva_promocao(inicio=10):
    for numero in range(10, 0, -1): #gera numeros de 10 a 1 de forma decrescente
        if numero % 2 == 0: #Verifica se é par
            print(f"Faltam apenas {numero} segundos - Não perca essa oportunidade!")
    else:
        print(f"A contagem continua: {numero} segundos restantes.")
    time.sleep(1) #Pausa de 1 segundo real

print("Aproveite a promoção agora!")

# Chamada da função
contagem_regressiva_promocao()
1 resposta

Oi, Laura. Tudo bem com você?

Seu exercício de contagem regressiva ficou bem legal, e você conseguiu aplicar o for, o range() com passo negativo e a verificação de números pares dentro da função. A utilização do time.sleep(1) também deixa a ideia de uma contagem acontecendo em tempo real.

Tem apenas um ponto no código que vale observar: o else está associado ao for, e não ao if. Em Python, o else de um for é executado quando o laço termina normalmente. Por isso, a mensagem A contagem continua: {numero} segundos restantes. será exibida apenas uma vez, depois que o for terminar, com o valor final de numero. Além disso, como o time.sleep(1) está fora do for, a pausa de um segundo acontece somente depois que toda a contagem já foi executada.

Dentro do contexto da promoção, você pode pensar na diferença entre mostrar apenas os números pares e fazer cada segundo da contagem realmente aguardar um segundo antes de exibir o próximo valor. É uma boa oportunidade para testar como a posição da indentação altera o comportamento dos laços em Python.

Como você adaptaria o código para que todos os números de 10 até 1 aparecessem com um intervalo real de um segundo entre eles, mantendo a mensagem especial para os números pares?

Parabéns pelo exercício e por compartilhar seu código com a comunidade. Continue testando essas pequenas alterações, porque elas ajudam bastante a entender na prática como for, if, else e time.sleep() se comportam. O fórum está à disposição para acompanhar seus próximos exercícios.

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