Curso de introducción a la programación en python

Autor: Luis Fernando Apáez Álvarez

Clase 18: Nociones básicas II

Comando return

Si consideramos la siguiente función

notemos que en la sección correspondiente a las instrucciones hemos declarado una variable que almacene la suma y después hemos imprimido el resultado utilizando print(). Ahora bien, si deseamos modificar de alguna forma la variable resultado tendríamos que recurrir a modificar la función misma, lo cual no sería lo recomendado. Para ello emplearemos el comando return el cual ejecutará las instrucciones que asignemos a la función sin la necesidad de declarar una variable para el resultado. Por ejemplo

Por otro lado, además de utilizar return en las instrucciones de la función podemos emplear condicionales y bucles como lo hemos aprendido hasta ahora. Por ejemplo podemos crear una función que, de acuerdo a la nota obtenida en un examen por un alumno, indique si dicho estudiante ha pasado el examen o no

una alternativa interesante al código de la función calificador utilizando return puede ser

o también

Podemos entender de manera más sencilla el comando return si recordamos el funcionamiento de break cuando trabajamos el bucle while, pues éstos básicamente actúan de manera muy similar.

Parámetros por defecto

Al crear una función y definirla con parámetros estamos condicionados a que, al llamar la función, declaremos los parámetros que deseamos asignar a la función. Por ejemplo, anteriormente hemos creado la función calificador() de modo que reciba una nota para que ésta pueda accionar, esto es, al invocar la función utilizamos calificador(7), calificador(9), etcétera (donde declaramos como parámetro el número 7 y 9 respectivamente para accionar la función). Sin embargo, si empleamos

obtenemos un error pues por cómo construimos la función debemos de asignarle forzosamente un parámetro. Para evitar este tipo de errores podemos colocar un valor por defecto a los parámetros para que la función actúe aún si nosotros no le asignamos algún parámetro. Por ejemplo, nuevamente consideremos la función

y asignemos algún valor por defecto a ambos parámetros, digamos por ejemplo que a = 0 y b = 0:

donde al no asignar valores a los parámetros, por defecto, se ha efectuado la suma $0+0=0$. No obstante

si asignamos valores a los parámetros entonces no hay necesidad de recurrir a los valores por defecto. También puede presentarse el caso en que no asignamos un valor a algún parámetro

donde se ha efectuado la suma $1+0=1$ pues al no asignar un valor para el parámetro correspondiente a b se ha optado por utilizar el valor por defecto que le hemos asignado.

Parámetros variables

En muchos casos puede ocurrir que no sepamos el número exacto de parámetros que pasaremos a una función. Para ello podemos agregar un parámetro general que actúe sin importar exactamente el número de parámetros que sean ingresados en nuestra función. Para ello utilizaremos un * seguido del nombre del parámetro general (o variable). Automáticamente Python considerará a ese parámetro variable como una tupla, por lo que podemos aplicar lo que hemos aprendido sobre ellas. Por ejemplo podemos crear una función que salude las personas de cierto club cuyos integrantes son 'Luis', 'Juan', 'Eduardo':

Si después de un tiempo un nuevo miembro ingresa a dicho club podemos volver a utilizar la función sin la necesidad de modificar algo

Otro ejemplo que podemos trabajar es efectuar la suma de todos los números que sean ingresados en una función, notemos que en este caso el número de parámetros es variable por lo que debemos de utilizar *:

Dado que los parámetros que ingresemos en la función serán asigandos a una tupla denominada numeros, entonces nosotros podemos utilizar la función predefinida sum() que realiza la suma de todos los elementos dentro de una tupla, consiguiendo así el resultado que buscabamos.


Ahora bien, si en lugar de tener una tupla, que se crea con los parámetros de una función, deseamos ingresar un diccionario como parámetro, debemos de utilizar doble asterisco en ves de uno. Además, cuando ingresemos los parámetros las llaves deben ir sin comillas y en vez de usar : utilizaremos =. Por ejemplo

y de hecho no tendremos problemas si no pasamos argumentos a la función:

Es por ello que podemos trabajar, hasta ahora, con funciones que reciban tres tipos de parámetros (fijos, *variables,**diccionarios). También está la posibilidad de pasar una tupla o una lista de manera directa al parámetro de una función.

Socialmedia.PNG