Skip to content

Material creado con vocación docente para enseñar los fundamentos de Python. Ejercicios guiados, prácticas reales y revisión automática del código mediante GitHub Actions.

License

Notifications You must be signed in to change notification settings

Anais-RV/python-fundamentos

🐍 Python Fundamentos

Repositorio pedagógico de ejercicios de Python pensado para estudiantes con base en bases de datos y experiencia previa con GitHub (forks, ramas y PRs). Incluye estructura clara, ejercicios graduados, ejemplos, CI, linting y una guía de contribución precisa.


📑 Índice


🎯 Requisitos

  • Python 3.12 o superior
  • Git
  • make (opcional pero recomendado para ejecutar tareas locales)

💡 Importante sobre entornos virtuales: Este proyecto utiliza entornos virtuales (.venv) para aislar dependencias. Es una práctica profesional estándar que evita conflictos entre proyectos. Consulta cheatsheets/01_intro.md para aprender qué son y por qué son importantes.

👤 Flujo de trabajo del alumno

📘 Guía completa: Consulta docs/guia-estructura-trabajo.md para detalles sobre organización de carpetas, nomenclatura y workflow completo.

  1. Haz un fork de este repositorio en tu cuenta.
  2. Clona tu fork localmente.
  3. Crea una rama para tus ejercicios: ejercicios-Nombre (usa tu nombre o alias).
  4. Organiza tus soluciones en carpetas mis_ejercicios/ dentro de cada módulo (ej: 01_intro/mis_ejercicios/01_hola_mundo.py).
  5. Trabaja con commits pequeños y descriptivos.
  6. Abre un Pull Request (PR) desde tu rama ejercicios-Nombre hacia la rama revision de este repo.
  7. Participa en la revisión por pares y atiende comentarios de la formadora.

📝 Normas de commits

Prefijos recomendados:

  • feat: nueva funcionalidad/ejercicio
  • fix: correcciones
  • refactor: reestructuración sin cambiar comportamiento
  • test: pruebas
  • docs: documentación

Ejemplo: feat: agregar ejercicios guiados de 01_intro

🧪 Cómo ejecutar tests y lint

Con make:

  • make setup (crea el entorno y instala dependencias mínimas)
  • make test
  • make lint

Sin make (alternativa manual):

  • Windows PowerShell: python -m venv .venv; .venv/Scripts/Activate.ps1; python -m pip install -U pip ruff pytest
  • macOS/Linux: python3 -m venv .venv; source .venv/bin/activate; python -m pip install -U pip ruff pytest
  • Ejecutar: pytest -q y ruff check .

📚 Documentación del repositorio

Este repositorio contiene dos tipos de documentación con propósitos diferentes:

📖 Cheat Sheets de Python

📁 Carpeta: cheatsheets/ - Referencia técnica de Python

Hojas de referencia rápida para consultar mientras programas:

Archivo Contenido
� INDICE Índice y guía de uso de los cheat sheets
01_intro.md Variables, tipos básicos, entornos virtuales
02_estructuras.md Strings, números, booleanos, f-strings
03_control_flujo.md if/elif/else, for, while, break/continue
04_funciones.md Definición, parámetros, return, scope, lambdas
05_colecciones.md Listas, tuplas, diccionarios, sets
06_archivos_y_modulos.md I/O archivos, imports, JSON/CSV
🚀 python_quick_reference.md Referencia rápida todo-en-uno

💡 Tip: Mantén abierto python_quick_reference.md mientras programas.

📋 Guías del curso

📁 Carpeta: docs/ - Organización pedagógica

Documentación sobre cómo está estructurado el curso:

Archivo Contenido
roadmap.md Ruta de aprendizaje y tiempos estimados
rubrica-evaluacion.md Criterios de evaluación
checklist-revision-pares.md Guía para revisión por pares

📂 Estructura del repositorio

python-fundamentos/
├─ 01_intro/                → primeros pasos con Python
├─ 02_estructuras/          → tipos básicos y operadores
├─ 03_control_flujo/        → condicionales y bucles
├─ 04_funciones/            → funciones y parámetros
├─ 05_colecciones/          → listas, tuplas, diccionarios, sets
├─ 06_archivos_y_modulos/   → manejo de archivos e imports
├─ 07_mini_proyectos/       → pequeños retos aplicados
├─ cheatsheets/             → � referencia rápida de Python (sintaxis, ejemplos)
├─ docs/                    → 📋 guías del curso (roadmap, rúbricas)
└─ tests/                   → pruebas automáticas con pytest

🗺️ Módulos de aprendizaje

Cada módulo contiene:

  • 📖 MODULO.md - Objetivos y conceptos clave del módulo
  • 📝 ejercicios.md - Lista de ejercicios autónomos + link al ejercicio guiado
  • 💻 ejemplos/ - Código de ejemplo ejecutable
  • 🎯 ejercicio_guiado/ (opcional) - Ejercicio incremental "La Calculadora que Crece"
    • GUIA.md - Instrucciones paso a paso
    • calculadora_vX.py - Plantilla con TODOs

🎯 La Calculadora que Crece

Este repositorio incluye un ejercicio guiado opcional que evoluciona a través de todos los módulos. Se trata de una calculadora que vas construyendo incrementalmente, aplicando los conceptos de cada tema:

  • 📦 v1 (01_intro): Calculadora básica con suma
  • ➕ v2 (02_estructuras): Las 4 operaciones básicas con f-strings
  • 🔄 v3 (03_control_flujo): Menú interactivo con bucles y validación
  • ⚙️ v4 (04_funciones): Código modular con funciones
  • 📚 v5 (05_colecciones): Historial de operaciones
  • 💾 v6 (06_archivos): Persistencia con JSON

Cada versión incluye:

  • Plantilla con comentarios guía - Código parcial con instrucciones
  • Objetivos claros - Qué debes implementar
  • Solución completa (rama solutions) - Para cuando termines o necesites ayuda

💡 ¿Por qué este ejercicio? Te ayuda a ver cómo un proyecto evoluciona, cómo refactorizar código, y cómo aplicar cada concepto nuevo sobre una base que ya conoces. Al final del curso, tendrás una aplicación completa funcionando.

Ruta sugerida

  1. 01_intro - Primeros pasos

    • Variables, tipos básicos, entrada/salida
    • ⚠️ Configura tu entorno virtual aquí
  2. 02_estructuras - Tipos de datos

    • Strings, números, booleanos, conversiones
    • 📚 Aprende f-strings (muy importante)
  3. 03_control_flujo - Decisiones y repeticiones

    • if/elif/else, for, while
  4. 04_funciones - Organización del código

    • Definir funciones, parámetros, return
  5. 05_colecciones - Estructuras de datos

    • Listas, tuplas, diccionarios, sets
  6. 06_archivos_y_modulos - Persistencia y organización

    • Leer/escribir archivos, imports, JSON/CSV
  7. 07_mini_proyectos - Aplicación práctica y operador morsa

    • 🦭 Operador morsa (:=) - Feature moderno Python 3.8+
    • Refactorización de código (calculadora v7)
    • Mini-proyectos integradores

🎓 Próximos pasos

  1. ✅ Lee el roadmap para entender la estructura del curso
  2. ✅ Configura tu entorno según cheatsheets/01_intro.md
  3. ✅ Haz un fork del repositorio
  4. ✅ Empieza con 01_intro/ejercicios.md
  5. ✅ Mantén abierta la referencia rápida

¡Feliz aprendizaje! 🚀


👥 Autoría y Licencia

✍️ Autoría

Creado y diseñado por: Anaïs Rodríguez Villanueva
Contacto: GitHub @Anais-RV

Este material educativo ha sido desarrollado de forma independiente y vocacional con el objetivo de proporcionar recursos de calidad para el aprendizaje de Python. Representa cientos de horas de trabajo en diseño pedagógico, creación de contenidos y desarrollo de ejercicios progresivos.

📄 Licencia y Uso

Este proyecto está licenciado bajo MIT License (ver LICENSE).

Esto significa que puedes:

  • ✅ Usar este material para aprender o enseñar Python
  • ✅ Compartir el repositorio con estudiantes
  • ✅ Adaptar los ejercicios para tus necesidades
  • ✅ Hacer fork del proyecto

Con la condición de:

  • ⚠️ Mantener la atribución de autoría original en todos los materiales derivados
  • ⚠️ Incluir una referencia a este repositorio: github.com/Anais-RV/python-fundamentos
  • ⚠️ Mencionar a Anaïs Rodríguez Villanueva como autora original

Uso comercial:
Si deseas usar este material en contextos comerciales (cursos de pago, bootcamps, formaciones empresariales), por favor:

  1. Mantén visiblemente la atribución de autoría
  2. Considera contactar para una mención o colaboración
  3. Respeta el espíritu educativo y vocacional del proyecto

🤝 Contribuciones

Las contribuciones son bienvenidas y apreciadas. Al contribuir, aceptas que:

  • Tu contribución se licenciará bajo los mismos términos (MIT)
  • La autoría original del proyecto se mantiene como Anaïs Rodríguez Villanueva
  • Las contribuciones significativas serán reconocidas en CONTRIBUTING.md

Por favor, consulta CONTRIBUTING.md para más detalles sobre cómo participar en el proyecto.

💝 Reconocimientos

Este proyecto es un esfuerzo educativo independiente creado con dedicación para la comunidad de aprendizaje de Python. Si te ha sido útil, considera:

  • ⭐ Dar una estrella al repositorio
  • 🔄 Compartir con otros estudiantes
  • 💬 Proporcionar feedback o mejoras
  • 📢 Mencionar el proyecto si lo usas en tus clases

© 2025 Anaïs Rodríguez Villanueva. Material educativo de código abierto bajo licencia MIT.

About

Material creado con vocación docente para enseñar los fundamentos de Python. Ejercicios guiados, prácticas reales y revisión automática del código mediante GitHub Actions.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published