def gerar_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: "))
calcular = gerar_desconto(percentual)
print(f"Preço final com desconto: {calcular(valor_compra)}")
Explicação:
Criei uma função externa (gerar_desconto) que recebe a porcentagem de desconto e retorna uma função interna (aplicar_desconto). A função interna utiliza o valor do desconto definido anteriormente, caracterizando uma closure, pois ela "lembra" da variável percentual mesmo após a execução da função externa. Assim, é possível gerar diferentes funções de desconto de forma personalizada e reutilizável.