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

(18. Python: Praticando o uso de funções) Faça como eu fiz: gerador de funções personalizadas

def criar_desconto(percentual):
    def aplicar_desconto(valor):
        return valor - (valor * percentual / 100)
    return aplicar_desconto

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

desconto = criar_desconto(percentual)

preco_final = desconto(valor_compra)

print(f"Preço final com desconto: {preco_final}")
1 resposta

Oi, Eduardo, como vai?

Sua solução atende ao desafio proposto e utiliza corretamente o conceito de closure. A função interna consegue acessar o valor de percentual definido na função externa, permitindo criar funções personalizadas para diferentes taxas de desconto.

Esse exercício demonstra bem como closures podem ajudar a encapsular comportamentos e tornar o código mais flexível para diferentes cenários.

Pensando em uma aplicação real, como você adaptaria essa solução para limitar descontos a uma faixa válida, por exemplo, entre 0% e 100%?

Parabéns pela resolução e por compartilhar seu código. Continue praticando e conte com o fórum sempre que precisar.

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