¿Cómo practicaba scripting con Python?
Cuando estudias computación, y empiezas a aprender a programar desde cero, puede ser un poco complicado comprender el flujo de ejecución del código que empiezas a escribir, no existe una mejor herramienta para aprender que la práctica, en este sentido. Es por eso que en mi época de Programación Básica y Programación Orientada a Objetos me gustaba mucho buscar ejercicios sencillos por internet para poder practicar el cómo programar tareas sencillas y colocarlas en una función, todo ordenado y fácil de leer.
Luego de tiempo practicando, se me ocurrió una idea que, hasta el día de hoy, considero bastante interesante y útil, por lo que la puse en práctica de inmediato. Conforme programaba tareas sencillas en Python, me di cuenta de que estaba utilizando muchas funciones que el lenguaje tenía incluidas por defecto (built-in functions), así que decidí: ¿Por qué no intento programar todas estas funciones que estoy utilizando por mi propia cuenta?.
De esta manera, comencé a programar funciones que, a primera vista, parecían muy sencillas: funciones que hallaban máximos y mínimos en un objeto iterable, funciones que sumaban todos los elementos de una lista, que hacían distintas operaciones aritméticas o de álgebra lineal en las mismas. Insisto en que esto puede parecer una nimiedad, pero a hoy considero que esto me ayudó no sólo a aprender más sobre el flujo de cómo funcionan las cosas, sino a cómo programar mis propias librerías.
Mi siguiente objetivo con este artículo es sugerir algunos ejercicios sencillos para recrear funciones que Python trae por defecto y que pueden llegar a ser increíblemente útiles, incluso en cursos más avanzados de la carrera. Algunas de las funciones que recomendaría programar por tu cuenta son las siguientes:
- Funciones que encuentren máximos y mínimos en una lista.
Estas dos funciones tomarían como parámetro una lista (o cualquier objeto iterable) y retornarían el número más grande o más pequeño, dependiendo de su objetivo. Puntos extra si como segundo parámetro, se puede colocar la cantidad de números a retornar (es decir, si el segundo parámetro de la función que halla máximos es un número 3, devuelve una lista con los tres números más grandes en orden).
- Función que halle la suma de los elementos de una lista.
Esta función también tendría como parámetro una lista (o, como decía, cualquier objeto iterable) y retornaría la sumatoria de todos los números que se encuentren en la lista. Un ejemplo puede ser una lista [2, 4, 7, 12]. En este caso la función retornaría (2 + 4 + 7 + 12), lo que daría como resultado 25. También se puede hacer una función que multiplique los números, o que haga una operación en general.
- Funciones que realicen operaciones de álgebra lineal.
Pueden ser funciones que hallen sumas o restas de vectores, productos punto o cruz, entre otros. El álgebra lineal tiene la característica de ser muy computacional, por lo que programar este tipo de operaciones suele ser muy útil para practicar, y también muy divertido. Si alguien leyendo este artículo aún no sabe qué es álgebra lineal, puntos extra por investigar y aprender por cuenta propia.
- Función que verifique que se cumplan condiciones en una lista.
Esto hace especial mención a funciones de Python como all() y any(), cuyo objetivo es verificar si en un iterable de condiciones (o simplemente datos) se cumple que todos son verdaderos (en el caso de all()) o que existe una condición verdadera entre todas (en el caso de any()).
- Función que ordene los elementos de un iterable de mayor a menor.
No es estrictamente necesario que implementes un algoritmo de sorting muy conocido, con implementar uno de fuerza bruta que encuentre una solución al problema es suficiente. Al fin y al cabo, lo más importante en este tipo de ejercicios es pensar en una solución que funcione. El tema de encontrar la solución óptima queda para tópicos más avanzados.
El objetivo de esta función sería recibir un iterable y devolver el mismo iterable con elementos organizados de mayor a menor. Puntos extra si como segundo parámetro recibe un boolean que determine si el iterable debe ser retornado con un orden de menor a mayor, o de mayor a menor.
Como conclusión me gustaría insistir en que considero que esta es una muy buena idea para practicar. Resolver un conjunto de tareas sencillas es el paso inicial para comenzar a plantear soluciones tecnológicas a gran escala. Además, creo que es muy divertido.
- Zant.
No hay comentarios: