Una guía práctica y completa para aprender Python desde los conceptos básicos hasta temas avanzados. Este proyecto está diseñado como un recurso educativo interactivo que permite a los usuarios explorar los fundamentos de Python ejecutando ejemplos prácticos.
Esta guía proporciona ejemplos prácticos y explicaciones detalladas de los conceptos fundamentales de Python. Cada tema está organizado en módulos independientes que pueden ejecutarse por separado, lo que permite un aprendizaje progresivo y personalizado.
El proyecto está organizado en módulos temáticos para facilitar el aprendizaje y la navegación:
base-python/
│
├── main.py # Punto de entrada principal
├── README.md # Este archivo
│
└── python_guide/ # Paquete principal
├── __init__.py # Inicializador del paquete
├── introduction.py # Introducción a Python
├── basic_types.py # Tipos básicos (variables, strings, números)
├── flow_control.py # Control de flujo (if, for, while)
├── functions.py # Funciones y su uso
├── advanced_types.py # Tipos avanzados (listas, tuplas, sets, diccionarios)
├── exception_handling.py # Manejo de excepciones y context managers
├── object_oriented.py # Programación orientada a objetos
├── decorators.py # Decoradores y funciones de orden superior
└── concurrency.py # Concurrencia y paralelismo
- Python 3.10 o superior
- Entorno virtual (venv) recomendado
- Paquetes adicionales para ejemplos avanzados:
requests(para ejemplos de concurrencia)
-
Clone el repositorio o descargue los archivos:
git clone <url-del-repositorio> cd base-python
-
Cree y active un entorno virtual:
# Crear el entorno virtual python -m venv venv # Activar en Windows venv\Scripts\activate # Activar en macOS/Linux source venv/bin/activate
-
Instale las dependencias necesarias:
pip install requests
Para ejecutar todos los ejemplos de la guía:
python main.pyPara ejecutar solo una sección específica de la guía, utilice el argumento --section:
| Sección | Comando |
|---|---|
| Introducción | python main.py --section introduction |
| Tipos básicos | python main.py --section basic_types |
| Control de flujo | python main.py --section flow_control |
| Funciones | python main.py --section functions |
| Tipos avanzados | python main.py --section advanced_types |
| Manejo de excepciones | python main.py --section exception_handling |
| Programación OO | python main.py --section object_oriented |
| Decoradores | python main.py --section decorators |
| Concurrencia | python main.py --section concurrency |
También puede importar funciones específicas de la guía para usarlas en su propio código:
# Ejemplos de importación y uso de funciones exportadas
# 1. Funciones básicas
from python_guide.functions import calculate_average
result = calculate_average([1, 2, 3, 4, 5])
print(result) # Salida: 3.0
# 2. Tipos avanzados
from python_guide.advanced_types import merge_dictionaries
combined = merge_dictionaries({"a": 1}, {"b": 2})
print(combined) # Salida: {'a': 1, 'b': 2}
# 3. Decoradores
from python_guide.decorators import debug
@debug
def add(a, b):
return a + b
add(5, 3) # Mostrará información de depuración
# 4. Concurrencia
from python_guide.concurrency import run_in_thread
def task():
print("Tarea ejecutada en un hilo separado")
thread = run_in_thread(task)
thread.join()Introducción a Python
- ¿Por qué aprender Python?
- Primera aplicación
- Cómo se ejecuta el código
Tipos Básicos
- Variables
- Strings y sus métodos
- Formato de strings
- Secuencias de escape
- Números y operaciones
- Módulo math
- Conversión de tipos
Control de Flujo
- Comparadores lógicos
- Estructuras condicionales (if, else, elif)
- Operador ternario
- Operadores lógicos
- Bucles for y while
- Iterables
- Loops anidados
Funciones
- Definición de funciones
- Parámetros y argumentos
- Argumentos opcionales y nombrados
- *args y **kwargs
- Valores de retorno
- Alcance de variables
- Docstrings y anotaciones de tipo
Tipos Avanzados
- Listas y operaciones
- Desempaquetado de listas
- Expresiones lambda
- Listas de comprensión
- map, filter y reduce
- Tuplas
- Sets y sus operaciones
- Diccionarios
- Operador de desempaquetamiento
Manejo de Excepciones
- Bloques try/except/else/finally
- Captura de múltiples excepciones
- Lanzamiento de excepciones con raise
- Creación de excepciones personalizadas
- Context managers (with)
- Patrones de manejo de errores
Programación Orientada a Objetos
- Clases y objetos
- Herencia
- Encapsulación
- Polimorfismo
- Métodos especiales (dunder methods)
- Propiedades (@property)
- Métodos de clase y estáticos
- Clases abstractas
- Dataclasses
Decoradores
- Funciones como objetos de primera clase
- Closures
- Decoradores básicos
- Decoradores con argumentos
- Múltiples decoradores
- Decoradores de clase
- Aplicaciones prácticas (timing, caching, validación)
Concurrencia y Paralelismo
- Threading para tareas I/O-bound
- Multiprocessing para tareas CPU-bound
- AsyncIO para programación asíncrona
- concurrent.futures
- Patrones de concurrencia
- Comunicación entre procesos/hilos
- Sincronización
Las contribuciones son bienvenidas. Si encuentra errores o desea agregar más ejemplos, siéntase libre de abrir un issue o enviar un pull request.