Olá, Marcelo!
Sua solução está muito bem desenvolvida. A escolha do tipo float é ideal para lidar com valores monetários e centavos. O grande destaque do seu código foi a implementação do bloco try/except/else. Ao colocar a estrutura condicional do if/else dentro da cláusula else do tratamento de exceções, você garantiu que o programa só tente avaliar o orçamento se a entrada do usuário tiver sido convertida com sucesso, o que evita falhas de execução e deixa o código seguro.
Na sua visão, você acha que utilizar a cláusula else do try deixou a separação de responsabilidades mais clara do que se o if/else do orçamento estivesse diretamente dentro do bloco try?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!