Oi, Carlos! Como vai?
Agradeço por compartilhar.
Seu uso de função interna ficou bem estruturado: a função desconto_aplicado() recebe a porcentagem e retorna outra função, calcular_preco(), que usa esse desconto para calcular o valor final. Isso mostra bem a ideia de criar uma função personalizada a partir de um valor definido antes.
Uma dica interessante para o futuro é usar round() para controlar as casas decimais do resultado, deixando a saída mais organizada em valores monetários.
def calcular_preco(valor):
preco = valor - (valor * (desconto / 100))
return round(preco, 2)
O método round(preco, 2) arredonda o preço final para duas casas decimais, o que ajuda quando o resultado tem muitos números depois da vírgula.