É melhor usar uma exceção ou um código de retorno no Python?
Você pode conhecer esta recomendação da Microsoft sobre o uso de exceções no .NET:
Considerações de desempenho
...
Lance exceções apenas para condições extraordinárias, ...
Além disso, não lance uma exceção quando um código de retorno for suficiente ...
(Veja o texto completo emhttp://msdn.microsoft.com/pt-br/library/system.exception.aspx.)
Como ponto de comparação, você recomendaria o mesmo para o código Python?