Cordiales Saludos
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.
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
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.
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.
En el siguiente agregué una variable más, en este caso la z.
Ciclos Anidados
Ciclo for
Comenzaremos con el ciclo for. Repasaremos dos formás básicas de generar los tres primeros números naturales.
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.
Este ejercicio es parecido al anterior tan solo que lo que visualizamos está dentro del segundo ciclo.
En el siguiente ejercicio podemos ver como representar una matriz 3x3.
Y conociendo como podemos representar una matriz, también podemos trabajar con ella. En este caso se desea generar La Matriz Identidad
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.
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.
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.
Podemos combinar los ciclos. En este caso combinamos el ciclo for, con el ciclo while.
Nótese que la mover la variable
x
los resultados son diferentes.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.
Veamos el siguiente caso: Realicé los ejercicios de esta publicación en un Google Colab.
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
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
Revisando mi terminal ya veo que está
07_kwargs.ipynb
Ahora para entrar al cuaderno usaremos:
jupyter lab 07_kwargs.ipynb
Y listo!
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ón
✅ Curso de Programación Básica
Excelente explicación profe. Los **Kwargs son muy útiles pero complicados de entender al principio.
Gracias por pasar por aquí.
Así ya podemos hacer una super función! Acompañado de los *args.
Salud y feliz Año 2024!
Feliz 2024. Bendiciones para usted y su familia.
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.