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!