Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Python Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • Python

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Este curso está dirigido a programadores que dominan los fundamentos de Python y quieren evolucionar hacia patrones más expresivos y robustos del lenguaje. El participante aprenderá a anotar su código con type hints y verificarlo con mypy, a controlar el flujo de datos con generadores e iteradores personalizados, a serializar información entre formatos con criterio de seguridad, y a gestionar recursos en memoria con context managers propios. Asimismo, profundizará en programación orientada a objetos mediante jerarquías de clases, clases abstractas y dunder methods, y dominará las funciones de orden superior, decoradores y closures que caracterizan el estilo Python intermedio. Al finalizar, será capaz de escribir módulos bien tipados, modulares y con patrones de diseño consolidados que sirven de base para proyectos profesionales.

Al finalizar el curso, el participante será capaz de:

  • Anotar parámetros, valores de retorno y atributos de clase con type hints del módulo typing (Optional, Union, List, Dict, Tuple, Callable) y verificar las anotaciones con mypy sin errores
  • Implementar generadores con yield y yield from, e iteradores personalizados con __iter__ y __next__, justificando cuándo un generador es preferible a una lista para conjuntos de datos grandes
  • Serializar y deserializar datos entre Python y los formatos JSON, CSV y pickle, justificando la elección del formato según criterios de interoperabilidad, seguridad y tamaño
  • Gestionar flujos de datos en memoria con io.StringIO y io.BytesIO como alternativa a archivos en disco, e implementar context managers propios con __enter__/__exit__ o @contextmanager
  • Diseñar jerarquías de clases con herencia simple y múltiple controlada, aplicar super() respetando el MRO, y justificar cuándo preferir composición frente a herencia
  • Definir clases abstractas con abc.ABC y @abstractmethod, implementar polimorfismo con isinstance, y enriquecer clases con @property y dunder methods (__eq__, __hash__, __repr__)
  • Implementar decoradores de función con y sin parámetros usando functools.wraps, y adaptar funciones existentes con closures (nonlocal) y functools.partial para crear variantes especializadas sin modificar el original
  1. Anotaciones de tipo con typing y mypy Tipos compuestos: Optional, Union, List, Dict, Tuple, Callable; diferencia entre tipos simples y genéricos; anotación de funciones, métodos y atributos de clase; verificación estática con mypy --strict; reglas de # type: ignore y cuándo evitarlo
  2. Generadores e iteradores Funciones generadoras con yield y yield from; protocolo iterador: __iter__ y __next__; StopIteration; comparación de consumo de memoria entre generador y lista; uso con itertools.islice y expresiones generadoras
  3. Serialización y flujos de memoria Módulos json, csv y pickle: serialización y deserialización; DictWriter y DictReader; criterios de elección por interoperabilidad, legibilidad y seguridad; riesgos de pickle con fuentes no confiables; buffers en memoria con io.StringIO e io.BytesIO; context managers propios con __enter__/__exit__ y @contextmanager
  4. OOP II: herencia y composición Herencia simple y múltiple controlada; super() y el algoritmo MRO (C3); herencia frente a composición: criterios de decisión; refactorización de una jerarquía de herencia a composición; __mro__ para inspeccionar el orden de resolución
  5. OOP II: clases abstractas, polimorfismo y dunders abc.ABC y @abstractmethod; polimorfismo mediante sobrescritura y verificación con isinstance; @property con getter y setter con validación; dunder methods: __repr__, __eq__ y __hash__; contrato entre __eq__ y __hash__; @classmethod y @staticmethod
  6. Funciones de orden superior Closures y scope con nonlocal; decoradores sin parámetros y de fábrica (con parámetros); functools.wraps para preservar metadatos; functools.partial para especializar funciones; functools.lru_cache para memoización; patrón @decorador(args)(func)
  • Python 3.10 o superior instalado localmente o acceso a Google Colab
  • mypy instalado en el entorno: pip install mypy
  • Editor de código: VS Code con la extensión Python de Microsoft (recomendado)
  • pip incluido con la instalación estándar de Python; no se requieren paquetes de terceros más allá de mypy
  • Sistema operativo: Windows 10+, macOS 12+ o Linux con Python 3.10+ disponible

→ PYT01 — Fundamentos de Python (Iniciación, 8h)

  • Asignar variables de los cinco tipos primitivos (int, float, bool, str, NoneType) y describir el tipado dinámico
  • Aplicar métodos de cadena y construir mensajes dinámicos con f-strings
  • Construir y manipular listas y tuplas, distinguiendo mutabilidad e inmutabilidad
  • Organizar datos con diccionarios y aplicar operaciones básicas de conjuntos
  • Controlar el flujo con condicionales, bucles, comprensiones y bloques try/except
  • Definir funciones con parámetros, valores por defecto, return y docstrings
  • Construir una clase con __init__, atributos de instancia y métodos, e instanciarla desde un script
  • Utilizar los módulos datetime, random y la IO de archivos con with open