Curso Intermedio de Python N07. Kwargs, Ciclo Anidados

By rafaelaquino on 1/3/2024

Cordiales Saludos

![07_portada.png](Image from post)

Parámetro especial **Kwargs

Kwargs viene a complementar todas las formas posibles de pasar nuestros argumentos a una función. Se complementa los argumentos posicionales; los argumentos de palabras claves y los argumentos predeterminados. Te recomiendo que repases la publicación anterior referente a Argumentos posicionales y Args

Podemos hacer uso de Kwargs cuando deseamos pasar varios argumentos (especificamente con el formato Clave-Valor), permitiendo que nuestra funciones sean más flexibles a la hora de recibir los parámetros. Cabe destacar que los valores son agrupados en diccionarios a diferencia de los args donde se agrupaban en tuplas.

Es fácil de deducir por qué la palabra kwargs se utiliza por convención dentro de la comunidad. Kwargs es el equivalente a KeyWord arguments.

En el siguiente ejemplo enviamos los argumentos numeros y colores a la función valores. El parámetro **kwargs tomará todos esos valores en forma de diccionario.

![07_kwargs_01.png](Image from post)

Podemos agregar otra variable dentro de los parámetros de la función. En este caso colocamos la variable k al comienzo seguido de **kwargs. Aquí la variable k toma el valor de 10 y los demás valores entran en la variable kwargs en forma de diccionario

![07_kwargs_02.png](Image from post)

A continuación un ejericicio donde se combina args y kwargs. En la capture de pantalla se observa con claridad que los valores: 10, 20, 30 y 40 pasan a ser una tupla por el *args y los números y colores pasan a ser un diccionario cuando son recibidos por **kwargs.

![07_kwargs_03.png](Image from post)

Para aumentar la potencialidad de la función combinaremos a continuación dentro de los parámetros de la función: una variable, args y kwargs.

![07_kwargs_04.png](Image from post)
En el siguiente agregué una variable más, en este caso la **z**.
![07_kwargs_05.png](Image from post)

Ciclos Anidados

Ciclo for

Comenzaremos con el ciclo for. Repasaremos dos formás básicas de generar los tres primeros números naturales.

![07_for_01.png](Image from post)

En algunos algoritmos necesitaremos anidar los ciclos, lo cual consiste en colocar un ciclo dentro de otro ciclo.

En el siguiente ejercicio vemos dos ciclos anidados for, nótese que la corrida en frio sería primero la acción del primer ciclo, luego hasta que se agote el ciclo interno volverá al primer ciclo.

![07_for_02.png](Image from post)
Este ejercicio es parecido al anterior tan solo que lo que visualizamos está dentro del segundo ciclo.
![07_for_03.png](Image from post)
En el siguiente ejercicio podemos ver como representar una matriz 3x3.
![07_for_04.png](Image from post)
Y conociendo como podemos representar una matriz, también podemos trabajar con ella. En este caso se desea generar **La Matriz Identidad**
![07_for_05.png](Image from post)
A continuación podemos observar que no hay límites para anidar los ciclos. Siempre debemos tener presente que debe agotarse la variable del último ciclo (el ciclo más interno) para subir a al ciclo anterior.
![07_for_06.png](Image from post)

Ciclo while

Repasemos las formas básicas del ciclo while. Revisa que al colocar la instrucción print(x) son diferentes los números generados.

![07_while_01.png](Image from post)
Aquí al anidar los ciclos **while** funciona igual que los ciclos **for**. Debe agotarse la variable del ciclo while más interno para volver al ciclo superior.
![07_while_02.png](Image from post)
Podemos combinar los ciclos. En este caso combinamos el ciclo for, con el ciclo while.
![07_while_03.png](Image from post)
Nótese que la mover la variable ```x``` los resultados son diferentes.
![07_while_04.png](Image from post)


Ampliando conocimientos

En esta oportunidad cree un enlace simbólico, específicamente ir_cuadernos ya que la ruta para entrar a los cuadernos de ejercicios es muy grande.

![07_funfamentos_01.png](Image from post)
**Veamos el siguiente caso**: Realicé los ejercicios de esta publicación en un [**Google Colab**](https://peakd.com/hive-154226/@rafaelaquino/data-science-n000-preparando-todo).
![07_funfamentos_02.png](Image from post)
Como necesito pasarlo a mi entorno virtual (dentro de mi computador) donde tengo el ejercicio de la publicación anterior. Descargo todos el cuaderno en Archivo/Descargar-Descargar .ipynb
![07_funfamentos_03.png](Image from post)
Busco el acceso directo a mi cuaderno, que en este caso es el enlace simbólico recien creado y lo descargo dentro de esta carpeta. Aquí coloco el nombre ```07_kwargs```
![07_funfamentos_04.png](Image from post)
Revisando mi terminal ya veo que está ```07_kwargs.ipynb```
![07_funfamentos_05.png](Image from post)
Ahora para entrar al cuaderno usaremos: ```jupyter lab 07_kwargs.ipynb```
![07_funfamentos_06.png](Image from post)
Y listo!
![07_funfamentos_07.png](Image from post)

Recurso para aprender Python

Estamos haciendo ejercicios que no se abordaron en mis dos cursos anteriores. Si es la primera vez que pasas por mis publicaciones te recomiendo que revises el material anterior.

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

Mi Twitter Mi facebook

Comments (2)

alberto0607's avatar @alberto0607 1/3/2024

Excelente explicación profe. Los **Kwargs son muy útiles pero complicados de entender al principio.

rafaelaquino's avatar @rafaelaquino 1/3/2024

Gracias por pasar por aquí. Así ya podemos hacer una super función! Acompañado de los *args. Salud y feliz Año 2024!

alberto0607's avatar @alberto0607 1/3/2024

Feliz 2024. Bendiciones para usted y su familia.

stemsocial's avatar @stemsocial 1/4/2024

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.