1
resposta

[RESPOSTA]

class ConversaoFloatError(Exception):
    """Exceção personalizada para erro de conversão em float."""
    pass

def ler_entrada(texto) -> str:
    return input(texto).strip()

def converter_entrada(valor_entrada: str) -> float :
    if not valor_entrada:
        raise ConversaoFloatError("Entrada vazia não pode ser convertida em float")

    try:
        return float(valor_entrada)
    except (TypeError, ValueError) as e:
        raise ConversaoFloatError(f"Não foi possível converter '{valor_entrada}' em float") from e

def porcentagem_desconto(valor_desconto: float):
    def aplicar(valor: float) -> float:
        return valor - (valor * valor_desconto / 100)
    return aplicar

def formatar_resultado(resultado: float) -> str:
    return f"Preço final com desconto: {resultado:.2f}"

def executar_fluxo() -> None:
    texto_desconto = 'Digite a porcentagem de desconto: '
    texto_compra = 'Digite o valor da compra: '

    try:
        desconto_float = converter_entrada(ler_entrada(texto_desconto))
        compra_float = converter_entrada(ler_entrada(texto_compra))

        desconto_sobre_compra = porcentagem_desconto(desconto_float)
        preco_com_desconto = desconto_sobre_compra(compra_float)

        print(formatar_resultado(preco_com_desconto))
    except ConversaoFloatError as e:
        print("Erro de conversão:", e)

if __name__ == "__main__":
    executar_fluxo()
1 resposta

E aí, Maurício! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios.

Percebi que você praticou o uso de exceções personalizadas para tratar erros de conversão com mais clareza e aplicou muito bem o encapsulamento de lógica com funções internas para calcular o desconto.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

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!