1. Fundamentos del Lenguaje
Python es un lenguaje interpretado, de alto nivel, tipado dinámico y fuertemente tipado. Todo en Python es un objeto.
Variables y Tipos Primitivos
No se declaran tipos explícitos. El tipo se infiere en tiempo de ejecución.
- int: Enteros de precisión arbitraria (
x = 10**100es válido). - float: Punto flotante (IEEE 754, doble precisión).
- bool:
TrueyFalse(subclases de int, 1 y 0). - str: Cadenas inmutables Unicode. Soportan f-strings (
f"Hola {nombre}"). - None: El objeto nulo (Singleton).
Control de Flujo
La indentación (4 espacios) es obligatoria y define bloques de código. No hay llaves {}.
Bucles (Loops)
for itera sobre cualquier iterable. while ejecuta mientras la condición sea cierta.
2. Estructuras de Datos
Python posee estructuras integradas muy potentes y optimizadas en C.
Listas (list)
Secuencias mutables, ordenadas y heterogéneas.
Tuplas (tuple)
Secuencias inmutables. Más ligeras que las listas. Usadas para datos fijos y claves de diccionarios.
Diccionarios (dict)
Mapas Hash (Tabla Hash). Claves inmutables, valores mutables. Búsqueda promedio O(1).
Conjuntos (set)
Colección no ordenada de elementos únicos. Útiles para operaciones matemáticas (unión, intersección) y eliminar duplicados.
3. Funciones y Modularidad
Funciones son objetos de primera clase (se pueden pasar como argumentos).
Argumentos
- Posicionales: Estándar.
- Nombrados (Keyword):
func(a=1). - *args: Tupla de argumentos posicionales variables.
- **kwargs: Diccionario de argumentos nombrados variables.
Funciones Lambda
Funciones anónimas de una sola línea. lambda x: x**2.
Ámbito (Scope) - LEGB
Local, Enclosing (nonlocal), Global, Built-in.
4. Programación Orientada a Objetos
Clases, herencia múltiple y encapsulamiento (convención _private).
Clases y Métodos Mágicos (Dunder)
Los métodos que empiezan y terminan con __ definen comportamientos especiales.
Propiedades y Métodos Estáticos
Uso de decoradores @property, @staticmethod, @classmethod.
5. Python Avanzado
Iteradores y Generadores
Un generador usa yield para devolver valores uno a uno, ahorrando memoria (Lazy evaluation).
Decoradores
Funciones que modifican el comportamiento de otras funciones. Son "azúcar sintáctico" para funciones de orden superior.
Gestores de Contexto (Context Managers)
El bloque with asegura la liberación de recursos (archivos, sockets, locks).
Concurrencia: GIL y AsyncIO
El Global Interpreter Lock (GIL) impide que múltiples hilos nativos ejecuten bytecode Python a la vez. Para paralelismo real en CPU se usa multiprocessing. Para E/S (red, disco) se usa threading o asyncio (con async/await).
Nivel 1: Fundamentos (10)
1. Hola Mundo Avanzado Basic
Función que recibe nombre y edad, y retorna un f-string formateado.
2. FizzBuzz Basic
3. Invertir String Basic
4. Contador de Vocales Basic
5. Máximo de una lista Basic
6. Tabla de Multiplicar Basic
7. Eliminar duplicados Basic
8. Año Bisiesto Basic
9. Factorial Recursivo Basic
10. Suma de pares Basic
Nivel 2: Intermedio (10)
11. Comprensión de Listas Inter
Cuadrados de números pares del 0 al 9.