1
resposta

Resolução da atividade 12. (Funções personalizadas)

# Função que cria a closure
def criar_desconto(porcentagem):
    def aplicar_desconto(valor):
        return valor * (1 - porcentagem / 100)
    return aplicar_desconto

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

# Criando a função com o desconto definido
calcular_preco = criar_desconto(porcentagem)

# Aplicando o desconto
preco_final = calcular_preco(valor)

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

Olá, Luiz! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o conceito de closures para encapsular a lógica de desconto com Python, utilizou muito bem a função interna para aplicar o cálculo e ainda compreendeu a importância da reutilização de código para tornar o programa mais flexível e organizado.

Uma dica interessante para o futuro é aplicar lambda functions quando quiser simplificar as closures em casos mais diretos. Assim:

criar_desconto = lambda porcentagem: lambda valor: valor * (1 - porcentagem / 100)

calcular_preco = criar_desconto(15)

print(calcular_preco(200))  

Isso faz com que a criação da closure seja mais compacta, mantendo a mesma funcionalidade.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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