1
resposta

[Projeto] Aprovando empréstimo

while True:
try:
renda_mensal_str = input("Digite o valor da sua renda mensal: ")
renda_mensal = float(renda_mensal_str)
break
except ValueError:
print("Entrada inválida para renda mensal. Por favor, digite um valor numérico válido!")

if renda_mensal < 2000:
print("Empréstimo negado: renda abaixo de 2.000,00")
else:
while True:
try:
parcela_desejada_str = input("Digite o valor da parcela desejada: ")
parcela_desejada = float(parcela_desejada_str)
parcelas_possiveis = renda_mensal * 0.30

  if parcela_desejada <= parcelas_possiveis:
    print("Empréstimo aceito!")
  else:
    print("Empréstimo negado: parcela acima de 30% da renda.")
  break
except ValueError:
  print("Entrada inválida para parcela desejada. Por favor, digite um valor numérico válido!")
1 resposta

Olá, Paulo. Como vai?

Excelente iniciativa ao aplicar blocos try e except no seu projeto! Essa é uma prática fundamental em desenvolvimento de software, pois evita que o programa pare de funcionar caso o usuário digite um texto em vez de um número, garantindo o que chamamos de robustez do código.

Notei que o seu código está bem lógico, mas a formatação (identação) acabou ficando um pouco misturada ao postar no fórum. No Python, a identação é o que define quais comandos pertencem ao if, ao else ou ao while. Além disso, o seu segundo except ficou grudado no break.

Para ajudar na organização e na clareza do seu desafio, aqui está o código estruturado com as boas práticas de identação e uma pequena melhoria na legibilidade:

while True:
    try:
        renda_mensal = float(input("Digite o valor da sua renda mensal: "))
        break
    except ValueError:
        print("Entrada inválida. Por favor, digite um valor numérico!")

if renda_mensal < 2000:
    print("Empréstimo negado: renda abaixo de 2.000,00")
else:
    while True:
        try:
            parcela_desejada = float(input("Digite o valor da parcela desejada: "))
            # Calculando o limite de 30%
            limite_parcela = renda_mensal * 0.30
            
            if parcela_desejada <= limite_parcela:
                print(f"Empréstimo aceito! Seu limite era de R$ {limite_parcela:.2f}")
            else:
                print(f"Empréstimo negado: parcela de R$ {parcela_desejada:.2f} excede o limite de R$ {limite_parcela:.2f}")
            break
        except ValueError:
            print("Entrada inválida. Digite um valor numérico para a parcela!")

Dicas de Boas Práticas que apliquei:

  • Uso de f-strings: No comando print(f"... {limite_parcela:.2f}"), utilizei a formatação para exibir apenas duas casas decimais, o que é o padrão para valores monetários.
  • Simplificação do input: Você pode fazer o float(input(...)) diretamente, economizando uma linha de código, desde que esteja dentro do bloco try.
  • Nomenclatura: Alterei parcelas_possiveis para limite_parcela, o que torna o código mais intuitivo para quem lê (o valor não é a quantidade de parcelas, mas o valor máximo de cada uma).

Dominar essas estruturas condicionais aninhadas (um if dentro do else) é um passo gigante para criar sistemas de tomada de decisão mais complexos!

Espero que possa ter lhe ajudado!