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

Proyecto integrador: Gestión de cartera

Este es el cierre del track de Python. Vas a construir un sistema completo de gestión de cartera de clientes bancarios que combina TODO lo que aprendiste: tipos, variables, condicionales, bucles, funciones, clases, archivos, excepciones y análisis de datos.

120–180 min Prerrequisitos: TODAS las lecciones anteriores
01

El proyecto

Objetivo

Construir un sistema de gestión de cartera que permita: crear clientes, evaluar su perfil crediticio, registrar operaciones, persistir datos en archivos y generar reportes de análisis. Cada ejercicio construye una pieza del sistema, y al final se integran todas.

Contexto laboral: este tipo de sistema es una versión simplificada de lo que corre en un banco o fintech. Un analista de datos trabaja con datos de clientes, scores, transacciones y reportes. Lo que construimos acá con Python puro, después lo harías a mayor escala con pandas, SQL y dashboards.

Conceptos integrados

Lección Concepto Se usa en...
03-04 Tipos y variables Modelado de datos del cliente
06 Condicionales Evaluación crediticia, clasificación
08-15 Estructuras de datos Listas de dicts, anidación
16-17 Bucles Procesamiento de registros
18-19 Funciones Modularización del pipeline
20 Módulos stdlib datetime, json, collections
23 Regex Validación de CUIT
24 Archivos Persistencia CSV/JSON
25 Excepciones Manejo robusto de errores
26 Clases Modelado OOP del sistema
02

Construcción paso a paso

Paso 1: El modelo de datos

Empezamos definiendo la clase Cliente con todos sus atributos y métodos de negocio.

paso_01_modelo.pyPython

                
Hacé clic en ▶ Ejecutar

Paso 2: La cartera con persistencia

Un gestor que maneja la colección de clientes con lectura/escritura a JSON.

paso_02_cartera.pyPython

                
Hacé clic en ▶ Ejecutar

Paso 3: Análisis y generación de reporte de negocio

paso_03_analisis.pyPython

                
Hacé clic en ▶ Ejecutar
03

Referencia rápida del proyecto

Componente Concepto Python Archivo/Clase
Modelo de datos @dataclass, validación, @property Cliente
Colección Lista de objetos, __len__ Cartera
Persistencia json.load/dump, with open _cargar/_guardar
Validación raise ValueError, regex __post_init__
Análisis Counter, defaultdict, comprehensions reporte()
Búsqueda Iteración, .get() buscar()
04

Ejercicios del proyecto

Nivel 1 · Básico

Ejercicio 1: Crear la clase Cliente

Creá un @dataclass Cliente con nombre, score e ingreso. Agregá @property categoria. Creá 2 instancias. Debe incluir Premium.

ejercicio_01.pyDebe incluir "Premium"

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

Ejercicio 2: Lista de clientes con estadísticas

Creá 5 clientes, guardalos en lista, calculá score promedio e ingreso total. Debe incluir promedio.

ejercicio_02.pyDebe incluir "promedio"

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

Ejercicio 3: Filtrar y ordenar

De la lista anterior, filtrá los que tienen score >= 650 y ordenalos por ingreso descendente. Debe incluir Pérez.

ejercicio_03.pyDebe incluir "Pérez"

                    
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: Validación con regex y excepciones

Agregá validación de CUIT en __post_init__. Probá con CUITs válidos e inválidos. Debe incluir inválido.

ejercicio_04.pyDebe incluir "inválido"

                    
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: Persistencia JSON

Creá funciones guardar_clientes(lista, archivo) y cargar_clientes(archivo) que serialicen/deserialicen a JSON. Debe incluir guardados.

ejercicio_05.pyDebe incluir "guardados"

                    
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: Agrupar por categoría con Counter

Clasifica cada cliente en su categoría y contá cuántos hay en cada una con Counter. Debe incluir most_common.

ejercicio_06.pyDebe incluir "most_common"

                    
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Evaluación crediticia modular

Creá funciones de validación separadas: validar_edad(), validar_score(), validar_ratio(). Combinalas en evaluar(). Debe incluir APROBADO.

ejercicio_07.pyDebe incluir "APROBADO"

                    
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Cargar CSV crudo y procesar

Dado un CSV como string multilínea, parsealo, limpiá los datos, filtrá errores y generá estadísticas. Debe incluir procesados.

ejercicio_08.pyDebe incluir "procesados"

                    
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Análisis por ciudad con defaultdict

Agrupá clientes por ciudad, calculá ingreso promedio y score promedio por ciudad. Debe incluir BsAs.

ejercicio_09.pyDebe incluir "BsAs"

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

Ejercicio 10: Sistema completo integrado

Construí el sistema completo: clase Cliente con validación, clase Cartera con agregar/buscar/reporte, persistencia JSON, manejo de errores. Cargá 5 clientes, generá reporte con estadísticas, categorías y oportunidades de cross-sell. Debe incluir SISTEMA COMPLETO.

ejercicio_10_desafio.pyDebe incluir "SISTEMA COMPLETO"

                    
Hacé clic en ▶ Ejecutar
05

Resumen final del track Python

🎉 ¡Felicitaciones! Completaste el track de Python. Ahora tenés las bases sólidas para el siguiente paso: SQL (para consultar bases de datos) y Data Analysis (para usar pandas, numpy, matplotlib y todo el ecosistema de análisis).

El código que escribiste en estas 27 lecciones — con funciones, clases, archivos y manejo de errores — es exactamente el tipo de código que vas a escribir como Data Analyst en un banco, fintech o consultora. La diferencia es la escala: en vez de 5 clientes, van a ser 5 millones. Para eso está pandas.

Próximos pasos: Track de SQL →