Python desde cero
De tu primer print() a un proyecto propio.
Ruta completa y secuencial para aprender Python desde cero. Cada lección explica un concepto, lo muestra con ejemplos ejecutables y termina con un ejercicio que se comprueba en el laboratorio integrado. Al acabarla sabrás escribir programas de consola, organizar código en módulos, manejar errores y archivos, crear tus propias clases, instalar librerías con pip en entornos virtuales, consumir APIs por HTTP, trabajar con datos CSV y JSON, y aplicar prácticas profesionales: tipos, tests, logging, Git y documentación.
- Módulos
- 19
- Lecciones
- 54/54
- Tiempo
- 16 h
- XP
- 6300
Objetivo: Arquitectura, herramientas y prácticas de la industria.
Hoja de ruta
Curso al 100 %
54 de 54 lecciones · 19 de 19 módulos completos · 6300 de 5400 XP
- Completo
- En curso
- Planificado
Cada tramo es un módulo. Pulsa uno para saltar a su posición en la hoja de ruta.
Primeros pasos
Completo · 100 % 4/4 lecciones · Niveles 1 · 400 XPQué es un programa, cómo se ejecuta Python y cómo se lee un error cuando lo cometemos.
Tu primer programa
Cómo se ejecuta Python, qué hace print() y por qué el primer programa de cualquier curso es el mismo desde hace 45 años.
Leer un error sin miedo
El traceback de Python no es un castigo: es un mapa. Aprende a leerlo de abajo arriba y te ahorra horas de adivinar.
Variables: dar nombre a los datos
Un programa que no guarda nada no puede hacer nada. Las variables son las cajas con nombre donde guardas los datos de tu programa.
Los tipos básicos
Todo dato en Python tiene un tipo: entero, decimal, texto o booleano. Aprende a distinguirlos con type() y a no mezclarlos.
Operadores y expresiones
Completo · 100 % 3/3 lecciones · Niveles 1 · 300 XPCalcular, comparar y combinar condiciones.
Operadores aritméticos
Sumar, restar, multiplicar y dividir suena trivial hasta que / no da lo que esperabas: división real, entera, resto y potencias.
Comparación y operadores lógicos
Los programas deciden con booleanos: comparar con == y combinar con and, or y not. La base de todo if que escribirás.
Precedencia y conversión de tipos
Por qué 2 + 3 * 4 no es 20: el orden en que Python calcula y cómo convertir entre tipos con int(), float() y str().
Cadenas de texto
Completo · 100 % 3/3 lecciones · Niveles 1 · 300 XPTexto: dar formato, recortar y transformar.
Formatear texto con f-strings
Mezclar variables con texto sin pelearte con comas ni concatenaciones: f-strings, formato de decimales y alineación.
Índices y slicing
Cada letra tiene su posición: leer caracteres sueltos con [0], trozos con [a:b] y darle la vuelta a un texto con [::-1].
Métodos de cadena
Los métodos transforman texto sin tocar posiciones: mayúsculas, minúsculas, quitar espacios, buscar y reemplazar. El cuchillo suizo del texto.
Decisiones: condicionales
Completo · 100 % 3/3 lecciones · Niveles 1–2 · 300 XPHacer que el programa elija qué hacer.
if, elif y else
Hacer que el programa elija qué hacer: la lógica de decisión básica con if, elif y else.
Qué considera Python verdadero
No solo True y False: listas vacías, 0, None, cadenas vacías... aprende la regla de los "valores falsy" para escribir condiciones limpias.
El operador ternario
Condicional en una línea: valor_si_verdadero if condicion else valor_si_falso. Útil, pero con moderación.
Repetición: bucles
Completo · 100 % 3/3 lecciones · Niveles 1–2 · 300 XPRepetir trabajo sin copiar y pegar código.
for y range
Repetir sin copiar: iterar sobre secuencias con for y generar números con range().
El bucle while
Repetir mientras se cumpla una condición. Ideal cuando no sabes cuántas vueltas darás.
break, continue y else
Controlar el flujo dentro del bucle: saltar iteraciones, salir antes y detectar si terminó sin break.
Colecciones I: listas
Completo · 100 % 3/3 lecciones · Niveles 1–2 · 300 XPLa estructura de datos más usada en Python.
Crear y leer listas
La estructura de datos más usada en Python: ordenada, mutable y admite cualquier tipo mezclado.
Métodos de lista
append, extend, insert, pop, remove, clear, index, count, sort, reverse, copy: la herramienta completa para manipular listas.
List comprehensions
Crear listas en una línea transformando y filtrando: [expr for x in iterable if condicion]. La forma pythonica de mapear y filtrar.
Colecciones II: tuplas, conjuntos y diccionarios
Completo · 100 % 3/3 lecciones · Niveles 1–2 · 300 XPLas tres estructuras que completan el toolbox.
Tuplas y desempaquetado
Listas inmutables que protegen tus datos y permiten asignación múltiple: x, y = punto.
Conjuntos: elementos sin repetir
Set: colección desordenada, sin duplicados, con operaciones de teoría de conjuntos (unión, intersección, diferencia).
Diccionarios: clave y valor
La tabla hash de Python: acceso O(1) por clave, mutable, ordenada (desde 3.7). La estructura más versátil tras la lista.
Funciones
Completo · 100 % 6/6 lecciones · Niveles 1–3 · 600 XPLa unidad de trabajo del programador.
Definir y llamar funciones
La unidad de trabajo del programador: encapsular lógica, evitar repetición y dar nombres a las cosas.
Parámetros y valores por defecto
Posicionales, nombrados, *args, **kwargs, valores por defecto mutables (la trampa), y keyword-only arguments.
Qué devuelve una función
return devuelve valor y sale; sin return devuelve None; múltiples valores = tupla. Diferencia entre imprimir y devolver.
Ámbito: dónde vive una variable
LEGB: Local, Enclosing, Global, Built-in. Por qué x=1 dentro de una función no cambia la x de fuera, y cómo usar global/nonlocal cuando de verdad hace falta.
*args y **kwargs
Funciones flexibles: *args recoge posiciones extra en tupla, **kwargs recoge keywords extra en dict. Desempaquetar al llamar con * y **.
Lambdas y funciones de orden superior
Funciones anónimas (lambda) y funciones que reciben/devuelven funciones: map, filter, sorted(key=...), y el patrón decorador.
Proyecto 1: programa de consola
Completo · 100 % 1/1 lecciones · Niveles 2 · 100 XPUnir condicionales, bucles, listas y funciones en algo real.
Módulos y estructura de proyectos
Completo · 100 % 2/2 lecciones · Niveles 2–3 · 200 XPDejar de escribir todo en un solo fichero.
Importar: la biblioteca estándar
import, from ... import, alias, importar módulos propios. La biblioteca estándar: os, sys, json, random, datetime, pathlib...
Cómo se organiza un proyecto
Paquetes, __init__.py, estructura src/, tests/, pyproject.toml, venv. De script suelto a proyecto instalable.
Errores y archivos
Completo · 100 % 2/2 lecciones · Niveles 2 · 200 XPQue el programa no se caiga y sepa guardar datos.
Manejar excepciones
try/except/else/finally, capturar excepciones específicas, lanzar excepciones (raise), crear excepciones propias. Que el programa no se caiga.
Leer y escribir archivos
open() con with, modos (r, w, a, rb, wb), encoding UTF-8, read/readline/readlines, write/writelines, pathlib.Path.read_text/write_text.
Clases y objetos
Completo · 100 % 4/4 lecciones · Niveles 2–3 · 400 XPModelar el mundo con tus propios tipos.
Clases y objetos
Definir clases con class, crear instancias, atributos de instancia vs clase, __init__, representación (repr/str). Modelar conceptos del mundo real.
Métodos y self
Funciones dentro de la clase que operan sobre la instancia. self es el primer argumento implícito. Métodos de instancia, de clase (@classmethod) y estáticos (@staticmethod).
Herencia y super()
Crear subclases que heredan de una clase base. Sobrescribir métodos, llamar al padre con super(), herencia múltiple, MRO. Principio Liskov.
property y métodos mágicos (dunder)
@property para getters/setters elegantes, @setter, @deleter. Métodos dunder: __eq__, __hash__, __len__, __getitem__, __iter__, __call__, __bool__, __enter__/__exit__ (context manager).
Decoradores y generadores
Completo · 100 % 2/2 lecciones · Niveles 3–4 · 200 XPDos herramientas que separan el código amateur del profesional.
Generadores e iteradores
Crear secuencias perezosas con yield, el protocolo de iteración y itertools para pipelines de datos eficientes.
Decoradores
Funciones que envuelven otras funciones: sintaxis @, argumentos, functools.wraps, casos de uso reales (timer, cache, retry, validación).
Prácticas profesionales
Completo · 100 % 5/5 lecciones · Niveles 2–4 · 500 XPTipos, documentación, tests, logs y herramientas.
Anotaciones de tipos
Type hints: sintaxis, genéricos, Union, Optional, TypedDict, Protocol. Herramientas: mypy, pyright. Ventajas: documentación viva, refactor seguro, IDEs inteligentes.
Docstrings
Convenciones: Google, NumPy, Sphinx. Qué documentar: módulos, clases, funciones, argumentos, excepciones, ejemplos. Herramientas: pdoc, Sphinx, mkdocstrings. Doctest: tests en la documentación.
Testing básico con unittest y pytest
Escribir tests unitarios: unittest (stdlib), pytest (ecosistema). Fixtures, parametrización, mocks, cobertura. Organización: test_*.py, estructura AAA. Buenas prácticas: rápidos, aislados, deterministas.
Logging en vez de print
Módulo logging: niveles, handlers, formatters, filtros, configuración por dict/fileConfig. Structlog para logging estructurado (JSON). Rotación de archivos. Buenas prácticas: qué loguear, niveles, contexto.
Git, ruff y pytest: el taller
Flujo Git profesional: commits atómicos, convenciones, ramas, PRs. Calidad automatizada: ruff (lint+format), pytest (tests), pre-commit hooks. CI/CD básico con GitHub Actions.
Entorno: pip y dependencias
Completo · 100 % 2/2 lecciones · Niveles 2–3 · 200 XPInstalar librerías sin romper nada: pip, PyPI, entornos virtuales y requirements.
pip y PyPI: instalar librerías
El gestor de paquetes de Python: buscar, instalar, actualizar y desinstalar paquetes desde PyPI.
Entornos virtuales y requirements
Aislar dependencias por proyecto con venv: crear, activar, desactivar y usar requirements.txt para compartir entornos.
Biblioteca estándar
Completo · 100 % 2/2 lecciones · Niveles 2–3 · 200 XPEl arsenal que ya trae Python: rutas, fechas, JSON y colecciones avanzadas.
Rutas con pathlib
Manipulación orientada a objetos de rutas de archivos: unir, separar, leer, escribir, comprobar existencia y recorrer directorios.
Fechas, tiempos y colecciones útiles
datetime para fechas y horas, timedelta para aritmética temporal, y collections para estructuras avanzadas: Counter, defaultdict, deque, namedtuple.
HTTP y APIs
Completo · 100 % 2/2 lecciones · Niveles 3 · 200 XPInternet como fuente de datos: peticiones, JSON, errores y claves.
Peticiones HTTP con requests
La librería requests: GET, POST, PUT, DELETE, parámetros, headers, JSON, manejo de errores, timeouts y sesiones.
Consumir una API real
Patrones reales: autenticación, paginación, rate limiting, reintentos con backoff, validación de respuesta y manejo robusto de errores.
Datos: CSV y JSON
Completo · 100 % 2/2 lecciones · Niveles 2–3 · 200 XPLeer, limpiar y resumir datos tabulares como un profesional.
CSV: leer y escribir tablas
El módulo csv: reader, writer, DictReader, DictWriter. Leer, escribir, filtrar y transformar datos tabulares. Manejo de encoding, delimitadores y comillas.
JSON y resúmenes con statistics
Serializar/deserializar JSON, pretty-print, claves no-string, datetime. Módulo statistics: media, mediana, moda, desviación, varianza, cuantiles.
Proyecto 2: proyecto final
Completo · 100 % 2/2 lecciones · Niveles 4 · 200 XPAplicar todo lo aprendido en un programa completo.
Gestor de tareas en consola
Proyecto integrador: CRUD de tareas con prioridades, fechas, categorías, persistencia en JSON, búsqueda, filtrado y estadísticas.
Cliente de API con caché local
Proyecto avanzado: cliente HTTP robusto con caché en SQLite, rate limiting automático, reintentos, paginación y CLI interactiva.