1
resposta

[Projeto] Resposta questão

renda_mensal = float(input("Digite o valor da sua renda mensal: "))
valor_parcela = float(input("Digite o valor da parcela desejada: "))

limite_parcela = renda_mensal * 0.30

if renda_mensal > 2000 and valor_parcela <= limite_parcela:
    print(f"Empréstimo aprovado! Renda: R$ {renda_mensal:.2f} | Parcela: R$ {valor_parcela:.2f}")
elif renda_mensal <= 2000 and valor_parcela > limite_parcela:
    print("Empréstimo negado: renda abaixo de R$ 2.000,00 e parcela acima de 30% da renda.")
elif renda_mensal <= 2000:
    print("Empréstimo negado: renda mensal abaixo de R$ 2.000,00.")
else:
    print(f"Empréstimo negado: parcela de R$ {valor_parcela:.2f} ultrapassa 30% da renda.")
1 resposta

Olá, Maria. Como vai?

O seu código ficou excelente! A lógica para calcular o limite de 30% da renda (renda_mensal * 0.30) está perfeita e atende muito bem aos critérios comuns de análise de crédito do mercado financeiro. Além disso, a formatação das mensagens usando f-strings com a sintaxe :.2f foi uma ótima escolha, garantindo que os valores monetários sejam exibidos corretamente com duas casas decimais.

Analisando a estrutura das suas condições (if/elif/else), há um ponto técnico bem interessante sobre como o Python avalia os blocos que pode te ajudar a deixar o seu código mais enxuto e evitar repetições desnecessárias.

No seu primeiro elif, você escreveu a seguinte condição:

elif renda_mensal <= 2000 and valor_parcela > limite_parcela:

O detalhe é que você já possui condições individuais mais abaixo que tratam exatamente desses dois problemas isolados (um elif para a renda menor ou igual a 2000 e um else para a parcela acima do limite).

Na programação, quando encadeamos if, elif e else, o Python lê o código de cima para baixo e executa apenas o primeiro bloco cuja condição for verdadeira. Se simplificarmos a ordem das checagens, conseguimos dar o diagnóstico exato para o cliente sem precisar usar o operador and para prever a combinação dos dois erros.

Para visualizar como o fluxo de decisão de uma aprovação de empréstimo funciona de maneira linear e limpa através do pensamento computacional, veja como o algoritmo pode ser desenhado:

Ao organizar o código seguindo esse fluxo do diagrama, veja como a lógica fica limpa e elegante:

renda_mensal = float(input("Digite o valor da sua renda mensal: "))
valor_parcela = float(input("Digite o valor da parcela desejada: "))

# Calcula o limite máximo permitido para a parcela
limite_parcela = renda_mensal * 0.30

# 1ª Validação: A renda mínima é um pré-requisito obrigatório
if renda_mensal <= 2000:
    print("Empréstimo negado: renda mensal abaixo de R$ 2.000,00.")

# 2ª Validação: Se a renda passou, a parcela não pode passar de 30%
elif valor_parcela > limite_parcela:
    print(f"Empréstimo negado: parcela de R$ {valor_parcela:.2f} ultrapassa o limite de 30% da sua renda (R$ {limite_parcela:.2f}).")

# Se não caiu em nenhum erro anterior, o empréstimo está aprovado!
else:
    print(f"Empréstimo aprovado! Renda: R$ {renda_mensal:.2f} | Parcela: R$ {valor_parcela:.2f}")

O que mudou e por que ficou mais eficiente?

  • Eliminação de redundâncias: Ao testar logo de início se a renda é menor ou igual a 2000, eliminamos essa preocupação. Qualquer código que venha abaixo desse primeiro if já sabe, por tabela, que a renda do cliente é maior que 2000.
  • Clareza de diagnóstico: Se o cliente tiver uma renda baixa e uma parcela alta, ele será barrado imediatamente no primeiro critério (renda), o que já é suficiente para encerrar o atendimento de forma lógica e objetiva.

Parabéns pelo excelente desenvolvimento da atividade e por dominar o uso das estruturas condicionais em Python!

Espero que possa ter lhe ajudado!