Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Questão 5

Boa noite!

To com uma dúvida na questão 5, ao comparar minha solução com a solução proposta pelo instrutor:

Meu código:

numero = int(input('Informe um numero para calcular o fatorial: '))

fatorial = numero

for conjunto in range(1, numero, 1):
  fatorial *= conjunto

print(f'O fatorial do {numero} é {fatorial}')

Solução Proposta:

num = int(input('Informe um número inteiro: '))

fatorial = 1

i = num
while i > 0:
    fatorial *= i
    i -= 1

print(f'Fatorial de {num} é {fatorial}')

Existe uma diferença entre ambos no sentido de algo ser mais correto ou mais "limpo/profissional"?
Como considerei que a partir do momento que temos o número informado, o tamanho do loop já seria conhecido e por isso a solução por for, mas a instrutora propõe um while.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas
solução!

Olá! Como vai?

De fato, como já sabemos o limite do loop, o for é perfeitamente adequado e até mais direto nesse caso. O while também funciona, mas costuma ser mais usado quando não sabemos de antemão quantas repetições serão necessárias.

Logo, do ponto de vista de boas práticas, a sua solução com for pode ser considerada mais indicada, justamente porque expressa melhor a natureza do problema (um número finito de repetições). Já o while tem um caráter mais didático para reforçar a ideia de decremento passo a passo.

Espero ter ajudado e fico à disposição se precisar.

Abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

obrigado!