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

[Projeto] Gerador de funções personalizadas

def porcentagem_desconto(desconto):

  def preco_final(valor):

    return valor - (valor * (desconto / 100))

  return preco_final

valor_compra = float(input("Digite o valor da compra: "))
desconto = float(input("Digite a porcentagem de desconto: "))

preco_final = porcentagem_desconto(desconto)

print("Preço final com desconto: ", preco_final(valor_compra))
1 resposta

Oi, Laís. Tudo certo?

O exercício sobre closure para calcular desconto está bem implementado e a lógica da função está coerente com o objetivo proposto. A função porcentagem_desconto retorna corretamente uma função interna que utiliza o valor do desconto capturado no escopo externo, o que caracteriza o uso adequado de closure em Python.

Um ponto de atenção está na legibilidade das variáveis no fluxo principal. O nome preco_final é utilizado tanto para armazenar a função retornada quanto poderia ser interpretado como um valor, o que não compromete a execução, mas pode gerar confusão em leituras do código.

Uma evolução desse exercício seria adaptar essa estrutura para múltiplos tipos de desconto, como cupons cumulativos ou regras diferentes por categoria de produto. Como você imagina que essa closure poderia ser expandida para lidar com diferentes regras de desconto em um sistema de e-commerce?

Parabéns pela implementação e pela aplicação correta do conceito de closure. O fórum segue disponível para acompanhar seus próximos desafios.

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