Curso Intermedio de Python N06. Argumentos posicionales, Args

avatar
(Edited)

Cordiales Saludos


06portada.png

Argumentos

Ya habíamos abordado en publicaciones anteriores el tema de argumentos dentro de las características básicas de las funciones. Principalmente los posicionales que es una forma de adentrarse y entender el comportamiento de las funciones. Recordemos que las dos palabras importantes para la el tratado de los datos dentro de una función son: Los parámetros, que son los valores que recibe la función y los argumentos que son los valores que se envían en el llamado de la función.
Aquí desglosaremos los tipos de argumentos que nos permitirá tener un mejor control de la transferencia de datos a la función y para comprender mejor el tema args que se abordará también en esta publicación.

Argumentos Posicionales

Como su nombre lo indica los valores enviados y recibidos están relacionados por su posición. Es decir el orden de los argumentos serán recibidos en el mismo orden de la declaración de parámetros dentro de la función. En el siguiente ejemplo se detalla mejor con los colores amarillos y verdes de la líneas.


06_01.png

Los ejemplos publicados son ilustrativos, donde solo visualizo la variable que se transfiere a la función. Es de entender que existen funciones más complejas que modifican la función de acuerdo a todas las operaciones que se realicen dentro de ella. Pero para un mejor entendimiento del tema de hoy, se utilizaron funciones muy sencillas.

Aquí otro ejemplo aun más comprensible donde observamos que los números 1,2 3 que se envían a la función se relacionan posicionalmente con las variables en estricto orden: n1, n2 y n3.


06_02.png

Debes tener cuidado, al enviar los datos a la función. En este caso observemos como en el llamado: atleta('Rafael',89), el dato Rafael va directo a la variable nombre y el número 89 va directo a la variable peso por el orden estricto de sus posiciones.
Ahora, en el caso cuando se llama a la función: atleta(50,'Petra') el número 50 va directo a la variable nombre y el 'Petra' va directo a la variable peso. En este caso no hay congruencia, entre lo enviado y lo recibido.


06_03.png

Argumentos De palabras claves

Una forma más segura y donde nos garantizará que los valores llegarán a la variable de la función de forma precisa, es utilizar las palabras claves asignándoles el valor correspondiente.
En este ejercicio vemos que al enviar la variable con su valor asignado llegará al parámetro de la función de forma segura. Color con su valor 'Rojo' va directo a la variable color de la función, así lo mismo sucede con la variable forma.


06_04.png

Notemos aquí que invertimos las variables en el llamado a la función, en este caso colocamos primero forma y luego color y al tener las palabras claves, su funcionamiento no da error y se ejecuta como lo esperado.

06_05.png

Importante: Tanto en los argumentos posicionales como en los argumentos de palabras claves es importante que el número de argumentos enviados debe ser igual a los parámetros declarados. Si no es así dará error.

Argumentos Predeterminados.

También llamados argumentos opcionales, nos da aun más control del llamado de la función y de la misma función.

Veamos como se declara la función en este caso de argumentos predeterminados.


06_06.png

En este tipo de funciones, se puede llamar sin argumentos y la función se ejecutará sin ningun problema porque la función ya posee valores predeterminados.


06_07.png

Podemos llamar la función enviándole, un solo valor, y funcionará porque ya posee valores predeterminados complementarán el resultado. Importante tomar en cuanta que al enviar un solo valor la función actuará como actúa con los argumentos posicionales.

06_08.png

Aquí envianmos dos argumentos (siguiendo el orden lógico) y la función se ejecuta perfectamente.

06_09.png

Aquí haemos el llamado con modificando los tres valores y la función se ejucuta normalmente.

06_10.png

Debemos tener cuidado al enviar los argumentos. Recordemos que Python es dinámicamente tipado, y sus variables pueden cambiar de tipo. En el caso: argumento('casa´), 'casa´ se le asignará a la variable flag que está declarada booleana y cuando se imprime vemos que cambiá a string.

06_11.png

En el siguiente código podemos apreciar mejor el comportamiento de python cuando cambiamos de tipo de variable, sin ningún problema. Personalmente yo no recomiendo el cambio de tipo. Aunque le da flexibilidad a Python y nosotros podemos hacer uso de este cambio de acuerdo a las necesidades de nuestro código.

>>> flag=False
>>> type(flag)
<class 'bool'>
>>> flag='casa'
>>> type(flag)
<class 'str'>

Como todo tiene solución en python a qui les dejo una muestra de lo que podemos hacer.
06_12.png


Parámetro especial *args

Podemos hacer uso de args cuando deseamos que nuestra función sea flexible a la hora de recibir los parámetros. Cabe destacar que los valores son agrupados en una Tupla.

En este caso hacemos el llamado con 7 valores, los cuales son asignados a args.


06_arg_1.png

Aquí hacemos el llamado con tres valores, y la función se ejecuta perfectamente.


06_arg_2.png

También podemos agregar otra variable dentro de los parámetros de la función. En este caso colocamos la variable a al comienzo seguido de *args. Aquí la variable a toma el valor de 100 y los demás valores entran en la variable args en forma de Tupla.

06_arg_3.png

Cuando colocamos la variable en los parámetros despues de Args, nos arroja un error.

06_arg_4.png

El cual podemos solucionar con lo aprendido en los argumentos, en este caso llamando a la función con un argumento de palabra clave, es decir enviamos el argumento x con un valor.

06_arg_5.png

Otra forma de solucionar es por medio del argumento predeterminado. Es decir declaramos en los parámetros a x con un valor predeterminado en este caso el valor 0.

06_arg_6.png

Podemos cambiar el valor de la x y la función se ejecuta perfectamente.

06_arg_7.png

Por último podemos hacer el llamado a la función sin ningún arguemento y la función se ejecutará.

>>> def aprende_arg(*args):
...     print(args)
... 
>>> aprende_arg()
()
>>> 

Profundizando en python

El empaquetado y desempaquetado de tuplas nos dará una mejor visión y comprensión del tema de args.

Aquí puedes ver mi anterior publicacón dedicada a las Tuplas.

Tuplas

En el empaquetado asignamos un grupo de valores a una variable.


06_tupla1.png

En el desempaquetado podemos asignarle variables independientes a cada uno de los valores de la Tupla..

06_tupla2.png

Aquí podemos ver como después del desempaquetado podemos visualizar las variables

06_tupla3.png

En este caso usando el asterisco junto a una variable (aquí *otros), podemos asignarles varios valores a dicha variable. En el desempaquetado se asigna uno, dos y tres a los valores 1, 2, y 3 respectivamente. Los valores sobrantes se le asignan a la variable otros.

06_tupla4.png

En este caso en el desempaquetado la variable uno toma el valor de 1 que está en la primera posición y la variable cinco toma el valor de 5 que está en la última posición. Los demás valores internos se asignan a la variable dentro.

06_tupla5.png

Aquí en el desempaquetado los primeros valores se asignan a la variable primeros y las variables cuatro y cinco tomarán los valores 4 y 5 respectivamente.

06_tupla6.png

Se destaca que la asignación del grupo de valores usando el asterisco junto a una variable, dicha variable tiene el comportamiento de una lista.


Recurso para aprender Python

Una forma muy útil para llevar este curso o realizar tus prácticas de programación con python es instalando jupyterlab en tu computador.

En este caso se creó un carpeta llamada cuadernos, luego un entorno virtual el cual activamos.

En la siguiente captura de pantalla podemos ver el código utilizado, para esta primera parte.


06_fun_01.png

Ahora procedemos a instalar jupyterlab con: pip install jupyterlab


06_fun_02.png

Para ejecutar nuestro cuaderno de trabajo usamos: jupyter lab.

06_fun_03.png

Aquí automáticamente se ejecuta nuestro cuaderno dentro de nuestro navegador preferido. De no ejecutarse podemos darle click las direcciones que están en el recuadro o copiamos el link y lo colocamos en nuestro navegador, y se ejecutará automáticamete. Para detener la ejecución de nuestro trabajo usaremos Ctrl + C.


06_fun_04.png

Así aparecerá en tu navegador jupyterlab, tan solo con darle click a un nuevo notebook y listo

06_fun_05.png

Esta es una vista general de nuestra área de trabajo.

06_fun_06.png

Ya podemos hacer todos nuestros ejercicios aquí. Es muy fácil de usar y con un poco de práctica nos funcionará perfectamente para nuestro ejercicios. Es una buena forma de guardar nuestras actividades con python.

06_fun_07.png

Para los Usuario Windows

Es muy parecido la instalación, solo difiere en la activación del entorno virtual.


06_fun_08.png

Luego ejecutamos

(env) C:\Users\siraq\python_intermedio\cuadernos>jupyter lab


06_fun_09.png


Mis cursos de programación:

Curso Gratis de Programación
Curso de Programación Básica


Mi Twitter



0
0
0.000
1 comments
avatar

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

0
0
0.000