Función retun()
En entradas anteriores hemos estado trabajando con los datos que puede recibir una función mediante argumentos que se asocian a los parámetros que se han definido en ella. En esta entrada trabajaremos con la devolución de valores, algo que la función realiza mediante la instrucción return().
Del mismo modo que una función no tiene por qué tener parámetros, tampoco tiene por qué devolver nada: en ese caso carece de la instrucción return(), lo que altera (en Python) su consideración de función. De hecho ya hemos trabajado con este tipo de funciones propias en anteriores ocasiones (1).
Ahora vamos a empezar a utilizar return() como recurso para devolver datos de la función secundaria (o de las funciones secundarias) a la(s) funciones principal(es), aunque es posible desarrollar sistemas complejos de interdependencia entre funciones, siguiendo los principios de la programación funcional. Pero no es este el camino que vamos a seguir en estos momentos: no lo haremos porque aun no corresponde, dado el momento en que se encuentra nuestro proceso de aprendizaje.
Lo que sí corresponde es explicar cómo implementamos return() en la función y que implicaciones tiene para la llamada a esa función desde el flujo principal del algoritmo. Para ello desarrollaremos y analizaremos en primer lugar un script sencillo. Posteriormente lo haremos algo más complejo para ver el modo en que podemos utilizar return() para devolver varios valores y no sólo uno (2).
Este primer ejemplo es en realidad una modificación y simplificación de un script anterior, pero nos sirve perfectamente para ejemplificar el uso simple de la instrucción return() y lo que implica en la función y en su llamada:
def funcion_suma (a, b):
op = a + b
return (op)
def main():
print("Dame dos números:")
a = eval(input("Primer número: "))
b = eval(input("Segundo número: "))
resultado = funcion_suma(a,b)
print("El resultado de la operación es ", resultado)
main()
def func_opera (a, b):su = a + bre = a - bmu = a * breturn (su,re,mu, a/b,a**b)def func_imprime(suma, resta, multiplica, divide, potencia):print("El resultado de la suma es ", suma)print("El resultado de la resta es ", resta)print("El resultado de la multiplicación es ", multiplica)print("El resultado de la división es ", divide)print("El resultado de la potenciación es ", potencia)def main():print("Dame dos números:")a = eval(input("Primer número: "))b = eval(input("Segundo número: "))suma, resta, multiplica, divide, potencia = funcion_suma(a,b)imprime_res(suma, resta, multiplica, divide, potencia)main()
Lo primero que debemos observar es que en este caso:
- Utilizamos tres funciones: una principal (main()) y dos subordinadas: func_opera() y func_imprime()
- Mientras que func_opera() cuenta con la instrucción return(), func_imprime() no.
- En func_opera(), return() devuelve hasta cinco datos: los tres primeros se expresan mediante variables (previamente has sido definidas como resultados de tres operaciones) y las dos últimas mediante expresiones.
- En main(), la llamada a func_opera() va precedida de cinco variables: cada una de ellas recoge cada uno de los valores que devuelve (la instrucción return() de) la función func_opera(), siendo el orden de presentación de dichas variables determinante del valor que recibe.
- Desde main() llamamos a func_imprime() pasándole como argumentos las variables que antes definimos como receptoras de los resultados que devuelve la func_opera() según expresamos antes en 4.
- Dada la naturaleza de func_imprime(), las misma llamada a la función (en este caso desde main()) genera el resultado esperado: se imprimen en pantalla las cinco frases que genera esa función.

No hay comentarios:
Publicar un comentario
Comenta esta entrada