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

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

def titulo(txt):
    print('=' * len(txt))
    print(txt)
    print('=' * len(txt))

def obter_valores():
    compra = float(input('Digite o valor da compra: '))
    desconto = int(input('Digite o valor do desconto: '))
    return compra, desconto

def calcular_desconto(desconto):
    def preco_compra(compra):
        return compra * ((100 - desconto) / 100)
    return preco_compra

def main():
    titulo('CALCULANDO DESCONTO')
    compra, desconto = obter_valores()
    preco_final = calcular_desconto(desconto)
    total = preco_final(compra)
    print(f'O preço final é R${total:.2f}')

if __name__ == '__main__':
    main()
1 resposta

Olá, Giovanni! Tudo bem?

A sua atividade “Faça como eu fiz: gerador de funções personalizadas” ficou bem organizada e mostra um bom uso de funções em Python, com separação entre título, entrada de dados, cálculo do desconto e execução do programa.

O ponto mais interessante do seu código é o uso de uma função interna em calcular_desconto(), retornando preco_compra() para aplicar o desconto depois; isso demonstra bem o conceito de funções personalizadas e deixa o código mais reutilizável. Uma dica simples é validar os valores digitados, garantindo que o desconto esteja entre 0 e 100, porque isso evita resultados inesperados e melhora a experiência de quem usa o programa.

Em quais outras situações você acha que esse modelo de função que retorna outra função poderia ser aplicado?

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