1
resposta

Faça como eu fiz: gerador de funções personalizadas

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


def criar_desconto(porcentagem):  

   def calcular_preco(valor):  

       preco_desconto = valor - (valor * (porcentagem / 100))
       return   preco_desconto

   return calcular_preco 


calcular_preco_final = criar_desconto(desconto) 

print(f'Preço final com desconto: {calcular_preco_final(valor)} reais') 
1 resposta

Boa noite, Márcia! Como está?

Incrível! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Notei que você utilizou com precisão o conceito de funções aninhadas para encapsular a lógica de cálculo, aplicou de forma eficaz o retorno de função dentro de outra função para criar uma estrutura reutilizável e compreendeu bem sua importância de criar funções mais flexíveis para personalizar comportamentos a partir de parâmetros.

Um próximo passo interessante seria explorar o uso de funções lambda para simplificar ainda mais funções como essa. Veja o exemplo:

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

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

calcular_preco_final = criar_desconto(desconto)

print(f"Preço final com desconto: {calcular_preco_final(valor)} reais")

Resultado:

Digite o valor da compra: 100
Digite a porcentagem de desconto: 10
Preço final com desconto: 90.0 reais

Isso permite escrever funções de forma mais compacta, que pode ser muito útil para trechos reutilizáveis e simples.

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!