Oi, Kelvin! Como vai?
Você estruturou bem a calculadora ao separar a função calcular() da função validar_operador(), o que deixa o código mais organizado e fácil de manter. Também foi uma boa escolha usar try e except para tratar entradas inválidas e divisão por zero.
Uma dica interessante para o futuro é validar também a divisão antes de fazer o cálculo, deixando a função calcular() mais segura. Veja este exemplo:
def calcular(num1, op, num2):
if op == '/' and num2 == 0:
return 'Erro: divisao por zero nao permitida'
if op == '+':
return num1 + num2
if op == '-':
return num1 - num2
if op == '*':
return num1 * num2
return num1 / num2
Esse código verifica se o operador é / e se o segundo número é 0 antes da divisão, evitando o erro durante a execução.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!