Olá, Esdras. Como vai?
Parabéns pela implementação! É muito interessante ver como você evoluiu a estrutura do código em comparação aos exercícios anteriores, utilizando agora uma função (def) e o comando raise para personalizar o lançamento de exceções dentro do bloco try-except.
Essa abordagem de usar o raise ValueError é muito comum em sistemas profissionais para interromper o fluxo de execução quando uma regra de negócio (como o limite da parcela) não é atendida.
Para agregar ainda mais valor ao seu desenvolvimento em Python, deixo aqui algumas observações técnicas e boas práticas:
- Regras de Negócio Dinâmicas: Você definiu
REQUISITO_RENDA e PARCELA_LIMITE dentro da função. Isso é ótimo para a legibilidade. Uma sugestão para tornar sua função ainda mais flexível seria passar esses valores como argumentos opcionais, permitindo que o banco altere as regras sem precisar mexer no "corpo" da função. - Cálculo da Margem Consignável: O cálculo da parcela limite que você utilizou (30% do salário) é o padrão utilizado em muitas instituições financeiras. Matematicamente, a sua expressão está perfeita e bem aplicada no
elif:
PARCELA_LIMITE = salario * 0.30 - Melhoria no Fluxo de Dados: Atualmente, sua função imprime o resultado diretamente. Em aplicações reais, é comum que a função retorne um valor (como
True ou False) para que outra parte do sistema saiba como proceder.
Veja como você poderia isolar a lógica da interface:
def avaliar_emprestimo(salario, valor_parcela):
REQUISITO_RENDA = 2000.00
margem_disponivel = salario * 0.30
if salario < REQUISITO_RENDA:
return False, f"Renda mínima insuficiente (Mínimo: R${REQUISITO_RENDA:.2f})"
if valor_parcela > margem_disponivel:
return False, f"Parcela excede a margem de 30% (Máximo: R${margem_disponivel:.2f})"
return True, "Empréstimo aprovado com sucesso!"
# Uso prático
try:
renda = float(input("Renda mensal: "))
parcela = float(input("Valor da parcela: "))
aprovado, mensagem = avaliar_emprestimo(renda, parcela)
if aprovado:
print(f"Sucesso: {mensagem}")
else:
print(f"Atenção: {mensagem}")
except ValueError:
print("Erro: Digite apenas valores numéricos válidos.")
Essa separação facilita a criação de testes automáticos e deixa o seu código muito mais próximo do que encontramos em grandes projetos. Continue explorando essas possibilidades com o Python!
Espero que possa ter lhe ajudado!