def distance_from_zero(n): if type(n) != str: return abs(n) else: return "Not an integer or float!"
def distance_from_zero(n): if type(n) != str: return abs(n) #Aqui estás devolviendo el valor de la función absolute else: print "Not an integer or float!" #En caso contrario de no ser un valor numerico devuelve este mensaje
def distance_from_zero(n): if type(n) != str: return n print "Not an integer or float!"
print distance_from_zero(3)
def distance_from_zero(n): mensaje = "Not an integer or float!" if type(n) != str: return n else: return mensaje
Buenas!El return devuelve valores de funciones/variables, en este caso para que saque el mensaje por pantalla en lugar de utilizar return, bastaría con un simple print:Código: [Seleccionar]def distance_from_zero(n): if type(n) != str: return abs(n) #Aqui estás devolviendo el valor de la función absolute else: print "Not an integer or float!" #En caso contrario de no ser un valor numerico devuelve este mensajeUn saludo!
ummm... tu función está bien. También he hecho los ejercicios de Python de codeacademy, y a pesar de que son muy buenos y didácticos, tienen el gran problema de que a veces hay errores en el intérprete que ellos te dan para que hagas los ejercicios. A veces faltan definir variables, otras veces hay mezclas de ingles y español en los nombres y así. Entonces por eso muchas veces vas a tener tu código bueno pero no te lo van a aceptar como correcto por esto que te estoy diciendo.Mi recomendación es que pruebes el código en otra parte (ya sea en tu propio interprete o en el que te hay en "codeacademy labs) y lo pruebes ahí, si te funciona pues ya sabes que lo tienes bueno. Finalmente para encontrar ese tipo de errores que tiene codeacademy y poder solucionarlos, te puedes pasar por la sección de preguntas del nivel correspondiente, que allí casi siempre están las correcciones hechas por otros usuarios.
haber si no me equivoco esto tendría que ser así:Código: [Seleccionar]def distance_from_zero(n): if type(n) != str: return n print "Not an integer or float!"en el caso de que no sea una cadena de texto no te imprimirá nada por que lo que esta haciendo es retornar un valor, pero en caso de que lo sea si imprimirá por que estas imprimiendo un mensaje. tendrías que poner al final:Código: [Seleccionar]print distance_from_zero(3)de esta manera te imprime lo que retorna, pero si introduces una cadera te imprimirá 2 veces, la primera el mensaje de error y después none, porque no retorna nada, entonces lo dejaría así:Código: [Seleccionar]def distance_from_zero(n): mensaje = "Not an integer or float!" if type(n) != str: return n else: return mensajeespero que sea esto a lo que referías y haberte ayudado xd.
distance_from_zero(hola)
distance_from_zero('hola')
Pero si ya te había dicho que tu código funciona. D:Ese código funciona en el interprete de Codeacademy labs y en la consola de mi Debian ^^.Si no te funciona en el intérprete con un string, creo que es porque no estás colocándole comillas al string. por ejemplo si lo vas a probar con hola:Código: [Seleccionar]distance_from_zero(hola)Es incorrecto porque hola no está definido, entonces python no sabe qué es hola.Si haces:Código: [Seleccionar]distance_from_zero('hola')Te va a funcionar perfectamente tu función, porque ahora le estás diciendo a python que eso que ingresas es un string, esto lo logras mediante las comillas, (simples, dobles o triples, como más te guste) como ya deberías saberlo. Yo he copiado y pegado tu función en mi interprete y ha funcionado.Espero te sirva.