Olá, Luciane, como vai?
O código está bem organizado, com as operações corretamente modularizadas em funções e uso adequado de try e except para tratar ValueError e ZeroDivisionError. A validação da operação antes de solicitar o segundo número também foi uma boa decisão e melhora a experiência de uso.
Há apenas um ponto de atenção na função calculadora. No bloco da divisão, após atribuir o resultado, existe um return logo em seguida. Esse retorno faz com que a função seja encerrada antes da linha que imprime o resultado, então o valor calculado não chega a ser exibido para o usuário. Removendo esse return, o comportamento fica consistente com as demais operações.
Obrigado por compartilhar sua solução e fique à vontade para continuar trazendo suas atividades e dúvidas no fórum, que está sempre à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!