return можно использовать внутри блоков try и except. 
  Если return выполняется внутри блока try, и исключение не происходит, функция завершится и вернет указанное значение. 
  Если исключение происходит в try, управление перейдет в соответствующий блок except, и если return есть и там, то функция завершится и вернет значение, указанное в except.
  При этом, блок finally, если он есть, выполнится в любом случае перед фактическим возвратом значения.
Да, оператор return можно использовать внутри блоков try и except для возврата значения из функции в Python.  Более того, это довольно распространенная практика, особенно когда нужно обработать исключение и вернуть какое-то значение по умолчанию или ошибку.
Рассмотрим несколько сценариев:
return в блоке try: Если код внутри блока try выполняется успешно и встречается return, функция вернет указанное значение и завершит свое выполнение.  Блок except в этом случае не будет выполнен.
    return в блоке except: Если в блоке try возникает исключение, управление переходит в соответствующий блок except. Если в блоке except встречается return, функция вернет указанное значение и завершит свое выполнение.
    return в блоке finally (дополнительно): Если у вас также есть блок finally, он будет выполнен всегда, независимо от того, возникло исключение или нет, и независимо от того, был ли выполнен return в блоках try или except.  Важно отметить, что return внутри блока finally переопределит значения, возвращаемые из блоков try или except (хотя это и считается плохой практикой).  В современных версиях Python это может вызвать предупреждение, т.к. скрывает возможное исключение.
    Пример:
def my_function(x):
  try:
    result = 10 / x
    return result  # Возвращается, если деление успешно
  except ZeroDivisionError:
    print("Деление на ноль!")
    return None  # Возвращается None, если произошло деление на ноль
  finally:
    print("Блок finally выполнен") # Выполнится всегда
В этом примере:
x не равен нулю, функция вернет результат деления (10 / x), и блок except не будет выполнен.  Блок finally выполнится после возврата.x равен нулю, возникнет исключение ZeroDivisionError. Управление перейдет в блок except, выведется сообщение "Деление на ноль!", и функция вернет None. Блок finally выполнится после возврата.Таким образом, использование return внутри блоков try и except - это обычный и допустимый способ управления потоком выполнения и возврата значений при обработке исключений.