martes, 28 de julio de 2026

Día 29 — Testing: asegurando que tu código funciona correctamente

Escribir tests automatizados es lo que diferencia el código de producción del código amateur. Un test verifica de forma automática que una función o clase se comporta exactamente como se espera, permitiendo detectar errores antes de que lleguen a producción.

El módulo unittest, incluido en la librería estándar, permite definir clases de pruebas con métodos que comienzan por test_, dentro de los cuales se usan aserciones como assertEqual() para comprobar que el resultado obtenido coincide con el esperado. La alternativa externa más popular es pytest, más concisa y con un ecosistema de extensiones muy amplio.

Código de ejemplo:

import unittest def suma(a, b): return a + b class TestSuma(unittest.TestCase): def test_numeros_positivos(self): self.assertEqual(suma(2, 3), 5) def test_numeros_negativos(self): self.assertEqual(suma(-1, -1), -2) if __name__ == "__main__": unittest.main()




lunes, 27 de julio de 2026

Día 28 — Generadores: procesando datos sin agotar la memoria

Un generador es una función especial que utiliza la palabra clave yield en lugar de return, lo que le permite producir valores uno a uno bajo demanda, en lugar de calcular y almacenar todos los resultados de golpe en memoria.

Esta característica los hace ideales para procesar archivos muy grandes, secuencias potencialmente infinitas o flujos de datos continuos, ya que el consumo de memoria se mantiene constante independientemente del volumen de datos procesados.

Código de ejemplo:

def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b generador = fibonacci() for _ in range(8): print(next(generador), end=" ") # 0 1 1 2 3 5 8 13 # Generator expression pares = (n for n in range(100) if n % 2 == 0)




domingo, 26 de julio de 2026

Día 27 — Web scraping: extrayendo datos de internet

El web scraping consiste en extraer información automáticamente de páginas web. Python destaca en esta tarea gracias a la combinación de dos librerías: requests, que descarga el contenido HTML de cualquier página, y BeautifulSoup, que permite recorrer y extraer elementos concretos de ese HTML de forma sencilla.

Es importante mencionar que antes de hacer scraping a cualquier sitio web conviene revisar su archivo robots.txt y sus términos de servicio, ya que no todas las páginas permiten la extracción automatizada de su contenido.

Código de ejemplo:

import requests from bs4 import BeautifulSoup url = "https://ejemplo.com" respuesta = requests.get(url) soup = BeautifulSoup(respuesta.text, "html.parser") titulos = soup.find_all("h2") for titulo in titulos: print(titulo.text.strip()) # Instalación: pip install requests beautifulsoup4