Olá, Marinaldo, como vai?
Seu código apresenta uma excelente implementação para o controle de orçamento, indo além da lógica básica de condicionais ao incluir tratamentos de erro e uma interface de usuário limpa através do terminal. A organização em funções e a utilização do dicionário para armazenar o histórico de despesas demonstram um ótimo domínio da linguagem Python. O uso correto das estruturas de decisão permitiu que o fluxo do programa fosse validado com precisão antes de cada atualização de saldo.
Parabéns pelo excelente exercício e por compartilhar sua solução com a comunidade, continue praticando e postando seus projetos. O fórum está à disposição.