Funciones y variables por google

Funciones y variables

Antes, te enfocaste en trabajar con múltiples parámetros y argumentos en funciones, así como en obtener información a partir de funciones. En esta lectura, repasarás estos conceptos. También se te presentará un nuevo concepto: el de variables globales y locales.

Trabajar con variables en funciones

Trabajar con variables en funciones requiere de comprender tanto de los parámetros como de los argumentos. Ambos términos tienen usos distintos al referirse a variables en una función. Además, si deseas que la función arroje el resultado, primero debes familiarizaste con las sentencias return.

Parámetros

Un parámetro es un objeto que se incluye en una definición de función para su uso en esa función. Cuando se define una función, se crean variables en el encabezado de esta. Luego, pueden usarse en el cuerpo de la función. En este contexto, estas variables se denominan “parámetros”. Considera, por ejemplo, lo siguiente:

def remaining_login_attempts(maximum_attempts, total_attempts):

    print(maximum_attempts - total_attempts)

Esta función toma dos variables, maximum_attempts y total_attempts, y las utiliza para realizar un cálculo. En este ejemplo, maximum_attempts y total_attempts son parámetros.

Argumentos

En Python, un argumento son los datos que se ingresan en una función cuando se la llama. Al llamar a remaining_login_attempts en el siguiente ejemplo, los números enteros 3 y 2 se consideran argumentos:

remaining_login_attempts(3, 2)

Estos números enteros pasan a la función a través de los parámetros que se identificaron al definir la función. En este caso, esos parámetros serían maximum_attempts y total_attempts. El número 3 está en la primera posición, por lo que pasa a maximum_attempts. Del mismo modo, el 2 está en la segunda posición y pasa a total_attempts.

Sentencias return

Al definir funciones en Python, puedes emplear sentencias return si deseas que la función devuelva un resultado. La palabra clave return se utiliza para obtener información de una función.

La palabra clave return se coloca delante de la información que quieres devolver. En el siguiente ejemplo, se encuentra antes del cálculo de cuántos intentos de inicio de sesión quedan:

def remaining_login_attempts(maximum_attempts, total_attempts):

    return maximum_attempts - total_attempts

Nota: La palabra clave return no es una función, por lo que no debes colocar paréntesis después de ella.

Las sentencias return son útiles cuando se desea almacenar lo que una función devuelve dentro de una variable para utilizarla en otra parte del código. Por ejemplo, podrías usar esta variable para realizar cálculos o dentro de sentencias condicionales. En el siguiente ejemplo, la información devuelta a partir de la llamada a remaining_login_attempts se almacena en una variable nombrada remaining_attempts. Luego, esta variable se usa en una sentencia condicional que imprime el mensaje "Your account is locked" cuando remaining_attempts es menor o igual a 0. Puedes ejecutar este código para explorar el resultado:

En este ejemplo, se imprime el mensaje porque el cálculo en la función da como resultado 0.

Variables globales y locales

Para comprender mejor cómo interactúan las funciones con las variables, primero debes conocer la diferencia entre las variables globales y las locales. 

Al definir y llamar a funciones, estás trabajando con variables locales, que son distintas a las variables que defines fuera del alcance de una función.

Variables globales

Una variable global es aquella que está disponible a través de todo el programa. Las variables globales se asignan fuera de una definición de función. Siempre que se llame a dicha variable, ya sea dentro o fuera de una función, devolverá el valor asignado.

Por ejemplo, puedes asignar la siguiente variable al principio de tu código:

device_id = "7ad2130bd"

A lo largo del resto de tu código, podrás acceder y modificar la variable device_id en condicionales, bucles, funciones y otros tipos de sintaxis.

Variables locales

Una variable local es aquella que se asigna dentro de una función. No se puede llamar a estas variables ni acceder a ellas fuera del cuerpo de una función. Las variables locales incluyen parámetros, así como otras variables que se asignan dentro de una definición de función.

En la siguiente definición de función, total_string y name son variables locales:

def greet_employee(name):

    total_string = "Welcome" + name

    return total_string

La variable total_string es una variable local porque está asignada dentro de la función. El parámetro name es una variable local porque también se crea al definir la función.

Cada vez que se llama a una función, Python crea estas variables temporalmente mientras la función se está ejecutando y las elimina de la memoria una vez que la función deja de ejecutarse.

Esto significa que, si llamas a la función greet_employee() con un argumento y luego usas la variable total_string fuera de esta función, te dará error.

Prácticas recomendadas para variables globales y locales

Cuando trabajas con variables y funciones, es muy importante asegurarte de que solo uses un nombre de variable en una ocasión, incluso si una se define de manera global y la otra local. 

Cuando utilizas variables globales dentro de funciones, estas últimas pueden acceder a los valores de una variable global. Puedes ejecutar el siguiente ejemplo para explorarlo:

El bloque de código devuelve "elarson" incluso si ese nombre no está definido de manera local. La función accede a la variable global. Si quieres que la función identify_user() acepte otros nombres de usuario, tendrías que reasignar la variable global “username” fuera de la función. Esto no es una buena práctica. Una mejor manera de pasar diferentes valores a una función es utilizar un parámetro en lugar de una variable global.

Hay algo más que considerar: Si reutilizas el nombre de una variable global dentro de una función, crearás una nueva variable local con ese nombre. En otras palabras, habrá tanto una variable global como una variable local con ese nombre, y tendrán valores diferentes. Ahora, considera el siguiente bloque de código:

La primera sentencia print se produce antes de la función y Python devuelve el valor de la variable global username, "elarson". La segunda sentencia print está dentro de la función y devuelve el valor de la variable local username, que es "bmoreno". Sin embargo, esto no cambia el valor de la variable global; cuando username se imprime una tercera vez después de la llamada a la función, el resultado sigue siendo "elarson".

Debido a esta complejidad, es mejor evitar combinar variables globales y locales dentro de las funciones.

Conclusiones clave

Para trabajar con variables en funciones, es necesario comprender varios conceptos. Un parámetro es un objeto que se incluye en la definición de una función para su uso en dicha función. En tanto, un argumento es el dato que se introduce en una función cuando se la llama, y la palabra clave return se utiliza para devolver información desde una función. Además, las variables globales son accesibles en todo el programa, mientras que las locales son parámetros y variables asignadas dentro de una función que no pueden utilizarse fuera de dicha función. Es importante asegurarse de que todas las variables tengan nombres distintos, incluso si una es local y la otra es global.

Comentarios

Entradas más populares de este blog

La Importancia de la Selección Genética en la Producción Avícola

Análisis de viabilidad económica y sostenibilidad de la crianza, incubación y alimentación de gallinas ponedoras para un consumo saludable en venta Bogotá, Colombia

Ventajas y Desventajas de los Proyectos Avícolas en el Campo Colombiano