Resolvi de uma maneira bastante parecida com o que fiz no primeiro desafio, então dessa vez não foi tão demorado.
def monitorar_orcamento(limite_orcamento):
while True:
try:
despesas = float(input("Digite o total de despesas realizadas: "))
break
except ValueError:
print("Entrada inválida. Por favor, digite um número.")
if despesas > limite_orcamento:
excesso = despesas - limite_orcamento
print(f"Você ultrapassou o limite de despesas em R$ {excesso:.2f}.")
else:
restante = limite_orcamento - despesas
print(f"Você está dentro do limite de despesas. Restam R$ {restante:.2f}.")
limite = 3000.0
monitorar_orcamento(limite)