El modo correcto es lanzar una excepcion que luego podria ser capturada a nivel de invocacion de estado_agua() o a nivel superior:
Código Python:
Ver originaldef estado_agua(num):
if (type(num) != int) and (type(num) != float):
raise Exception("Tipo de dato esperado es no-numerico!")
if (num<-273):
raise Exception("En el Universo no hay nada por debajo de -273 C")
elif (num<=0):
return ('La temperatura es '+str(num)+' grados. Su estado es solido.')
elif (num > 0) and (num <= 100):
return ('La temperatura es '+str(num)+' grados. Su estado es liquido.')
elif (num > 100):
return ('La temperatura es '+str(num)+' grados. Su estado es gaseoso.')
print(estado_agua(-200));
print(estado_agua(0));
print(estado_agua(10));
print(estado_agua(104));
# ta tan...
print(estado_agua(-300));
Ya si lo que quieres es evitar errores deberias:
- Hacer casting a numero
- Usar parametros opcionales, si no te dan el estado asumes 0 por ejemplo