QuieroProgramar por Rodri Gonzalez
Python · Lección 20 de 27

Módulos de la biblioteca estándar

Python viene con "baterías incluidas": una colección enorme de módulos listos para usar sin instalar nada. Esta lección cubre los 6 que vas a usar todos los días como analista: math, datetime, random, json, os y collections.

90–120 min Prerrequisitos: 18 Funciones básicas
01

Concepto teórico

¿Qué es un módulo y cómo se importa?

Un módulo es un archivo .py que contiene funciones, clases y variables que podés reutilizar. La biblioteca estándar (stdlib) son los módulos que vienen con Python — no necesitás instalar nada con pip. Hay tres formas de importar:

import math                    # importar el módulo completo → math.sqrt()
from math import sqrt, pi     # importar solo lo que necesitás → sqrt()
from math import sqrt as raiz # importar con alias → raiz()
Convención PEP 8: los imports van SIEMPRE al inicio del archivo, uno por línea, agrupados en 3 bloques: (1) stdlib, (2) terceros (pandas, numpy), (3) propios. Separados por una línea en blanco.

math — funciones matemáticas

Función Qué hace Ejemplo Resultado
math.sqrt(x) Raíz cuadrada sqrt(144) 12.0
math.ceil(x) Redondeo hacia arriba ceil(3.1) 4
math.floor(x) Redondeo hacia abajo floor(3.9) 3
math.log(x) Logaritmo natural (ln) log(math.e) 1.0
math.log10(x) Logaritmo base 10 log10(1000) 3.0
math.pi Constante π math.pi 3.14159...
math.e Constante e (Euler) math.e 2.71828...
math.pow(x, y) x elevado a y (float) pow(2, 10) 1024.0
math.factorial(n) Factorial de n factorial(5) 120
Uso en finanzas: math.log() se usa para calcular retornos logarítmicos en series financieras: retorno = math.log(precio_hoy / precio_ayer). math.ceil() sirve para redondear cuotas hacia arriba (nunca le cobrás de menos al banco). math.sqrt() aparece en cálculos de volatilidad y desvío estándar.

datetime — fechas y horas

El módulo datetime es fundamental para análisis de datos. Los campos de fecha aparecen en CADA dataset (fecha de transacción, fecha de alta, fecha de vencimiento). Sus clases principales:

Los métodos clave: .now() (fecha actual), .strftime(formato) (fecha → string), .strptime(string, formato) (string → fecha), y aritmética con timedelta.

Error común: confundir strftime (format → convierte fecha a string) con strptime (parse → convierte string a fecha). El truco: format tiene f, parse tiene p.

random — números aleatorios

Útil para simulaciones, muestreo, y generación de datos de prueba:

Función Qué hace Ejemplo
random.randint(a, b) Entero aleatorio entre a y b (incluidos) randint(1, 100)
random.random() Float entre 0.0 y 1.0 random()
random.uniform(a, b) Float entre a y b uniform(100, 200)
random.choice(seq) Elemento aleatorio de una secuencia choice(["A","B","C"])
random.sample(seq, k) k elementos sin repetición sample(range(100), 5)
random.shuffle(lista) Mezcla in-place shuffle(mi_lista)
random.seed(n) Fija la semilla (reproducibilidad) seed(42)
Reproducibilidad con seed: si fijás random.seed(42) antes de generar números, SIEMPRE obtenés la misma secuencia. Esto es crítico en ciencia de datos: si tu análisis depende de aleatoriedad, necesitás que sea reproducible. En sklearn: train_test_split(X, y, random_state=42) usa este mismo principio.

json — leer y escribir JSON

JSON (JavaScript Object Notation) es el formato estándar de las APIs web. En Python, JSON se mapea directamente a diccionarios y listas:

os — interacción con el sistema operativo

Para manejar archivos, carpetas y rutas. Los más usados: os.path.exists(), os.listdir(), os.getcwd(), os.path.join(), os.makedirs().

collections — estructuras de datos especializadas

Ya viste Counter, defaultdict y namedtuple. Son las herramientas de collections que usás constantemente en análisis de datos.

02

Ejemplos explicados paso a paso

Ejemplo 1: math para cálculos financieros

ejemplo_01_math.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 2: datetime — fechas en el mundo real

ejemplo_02_datetime.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 3: random — simulaciones y muestreo

ejemplo_03_random.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 4: json — serializar y parsear datos

ejemplo_04_json.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 5: os y collections combinados

ejemplo_05_os_collections.pyPython

        
Hacé clic en ▶ Ejecutar
03

Referencia rápida

Módulo Funciones clave Uso principal
math sqrt ceil floor log pi e factorial Cálculos matemáticos y financieros
datetime now strftime strptime timedelta Fechas, vencimientos, antigüedad
random randint choice sample seed gauss Simulaciones, muestreo, datos de prueba
json dumps loads dump load Serializar/parsear datos JSON/APIs
os path.join listdir getcwd makedirs Archivos, rutas, sistema
collections Counter defaultdict namedtuple Conteo, agrupación, registros
Formato datetime Significado Ejemplo
%d Día (01-31) 15
%m Mes (01-12) 03
%Y Año 4 dígitos 2025
%H Hora 24h 14
%M Minutos 30
%A Día de la semana Saturday
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: math.ceil para cuotas

Un préstamo de $157,000 se divide en 6 cuotas. Usá math.ceil() para redondear la cuota hacia arriba. Debe incluir 26167.

ejercicio_01.pyDebe incluir "26167"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: Fecha actual formateada

Imprimí la fecha actual en formato argentino dd/mm/yyyy usando strftime. Debe incluir /.

ejercicio_02.pyDebe incluir "/"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: random.choice

Usá random.seed(42) y random.choice() para elegir un ticker de ["GGAL","YPF","PAMP","MELI"]. Imprimí el elegido. Debe incluir el nombre del ticker.

ejercicio_03.pyReproducible con seed(42)

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: Calcular antigüedad en días

Un cliente se dio de alta el "15/03/2020". Parseá la fecha con strptime, calculá los días de antigüedad respecto a hoy e imprimí. Debe incluir días.

ejercicio_04.pyDebe incluir "días"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: json.dumps con formato

Creá un dict de cotización (ticker, precio, volumen, fecha) y convertilo a JSON con indent=2. Debe incluir "ticker" (con comillas, formato JSON).

ejercicio_05.pyDebe incluir "ticker"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: Generar vencimientos mensuales

Desde date(2025, 1, 10), generá 6 vencimientos mensuales (sumando 30 días cada vez) e imprimí en formato dd/mm/yyyy. Debe incluir 10/03/2025.

ejercicio_06.pyDebe incluir "10/03/2025"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Simulación con random y seed

Con seed(123), simulá 12 meses de retornos con random.gauss(0.005, 0.02) sobre capital $100,000. Imprimí saldo final. Debe incluir Final.

ejercicio_07.pyDebe incluir "Final"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Parsear JSON de API simulada

Dado un string JSON, parsealo, extraé los datos y calculá el valor total de la cartera. Debe incluir 2120000.

ejercicio_08.pyDebe incluir "2120000"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Generar dataset de prueba

Con seed(0), generá 5 clientes con nombre aleatorio de una lista, score entre 400-900, saldo entre 10K-500K. Guardá como lista de dicts. Debe incluir score.

ejercicio_09.pyDebe incluir "score"

          
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Reporte completo con todos los módulos

Combiná math, datetime, random, json y collections: (1) generá 10 transacciones aleatorias (seed 42) con fecha, tipo, monto, (2) contá tipos con Counter, (3) calculá estadísticas con math, (4) serializá a JSON, (5) imprimí reporte con fecha formateada. Debe incluir REPORTE.

ejercicio_10_desafio.pyDebe incluir "REPORTE"

          
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (21 · Módulos de pip) vas a aprender a instalar paquetes externos como pandas, numpy y requests — el ecosistema que hace de Python el lenguaje #1 para datos.

Recursos: Python Standard Library