1
resposta

O que acham?

Utilizando o laço for, de fato o programa fica mais simples e elegante. Não obstante, num primeiro momento me pareceu mais intuitivo o uso do laço while para a resolução do problema, de tal maneira que foi este último que utilizei em minha solução. Notei que outros colegas, que compartilharam suas respectivas soluções, também usaram o método while. Aqui fica uma questão mais de caráter "filosófico" que técnico: há alguma razão distinta de minha particular falta de experiência e habitualidade com programação para que, neste caso em específico, o método while pareça mais intuitivo que o método for, apesar da solução com este último ser mais objetiva, simples e elegante?

import time

contador = 10

while contador > 0:
  if contador % 2 == 0:
    print(f'Faltam apenas {contador} segundos – Não perca essa oportunidade!')
    contador = contador - 1
    time.sleep(1)
  elif contador % 2 == 1:
    print(f'A contagem continua: {contador} segundos restantes.')
    contador = contador - 1
    time.sleep(1)
if contador == 0:
  print('Aproveite a promoção agora!')

Aliás, fiz uma implementação de contagem regressiva de tempo utilizando a biblioteca import time e o método sleep.

1 resposta

A escolha entre while e for muitas vezes depende do problema que você está tentando resolver. No seu caso específico, o for é uma escolha mais concisa e expressiva, pois o número de iterações é fixo e bem definido. No entanto, a sensação de que o while é mais intuitivo é bastante comum para quem está começando, já que oferece um controle mais direto sobre o processo, o que pode alinhar melhor com o raciocínio de um programador iniciante.

À medida que ganhamos mais experiência e familiaridade com programação, o for tende a se tornar mais intuitivo e eficiente, especialmente para problemas de iteração finita. Ele acaba se tornando uma ferramenta fundamental para escrever códigos mais limpos e concisos, permitindo que o programador se concentre mais na lógica do que nos detalhes de controle da iteração.