Python: De Cero a Avanzado
Aprende Python desde los fundamentos hasta técnicas avanzadas de programación
Python: De Cero a Avanzado
Python es uno de los lenguajes de programación más versátiles y populares del mundo. Conocido por su sintaxis clara y legible, es ideal tanto para principiantes como para desarrolladores experimentados. Creado por Guido van Rossum en 1991, Python se ha convertido en el lenguaje preferido para data science, machine learning, automatización, desarrollo web y mucho más.
Consejo: Python es un excelente primer lenguaje para quienes están empezando a programar. Si ya conoces JavaScript, notarás algunas similitudes en la lógica, pero con una sintaxis más limpia.
¿Por qué Python?
Python domina varias áreas de la tecnología moderna:
- Data Science y Machine Learning - Bibliotecas como NumPy, Pandas, TensorFlow y PyTorch
- Desarrollo Web - Frameworks como Django, Flask y FastAPI
- Automatización y Scripting - Automatiza tareas repetitivas fácilmente
- Análisis de Datos - Procesamiento y visualización de grandes volúmenes de datos
- Inteligencia Artificial - Implementación de modelos de IA y deep learning
- DevOps - Ansible, scripts de infraestructura y automatización
Conceptos Fundamentales
Variables y Tipos de Datos
Python es dinámicamente tipado, lo que significa que no necesitas declarar tipos:
# Tipos básicos
nombre = "María" # string
edad = 25 # int
altura = 1.68 # float
activo = True # bool
# Estructuras de datos
lista = [1, 2, 3, 4, 5] # list
tupla = (1, 2, 3) # tuple
diccionario = {"clave": "valor"} # dict
conjunto = {1, 2, 3} # set
# Type hints (opcional, pero recomendado)
def saludar(nombre: str) -> str:
return f"¡Hola, {nombre}!"
Estructuras de Control
# Condicionales
if edad >= 18:
print("Mayor de edad")
elif edad >= 13:
print("Adolescente")
else:
print("Niño")
# Bucles
for i in range(5):
print(i)
for item in lista:
print(item)
while contador < 10:
contador += 1
# List comprehension
cuadrados = [x**2 for x in range(10)]
pares = [x for x in range(20) if x % 2 == 0]
Funciones y Decoradores
# Función básica
def calcular_promedio(numeros: list[float]) -> float:
return sum(numeros) / len(numeros)
# Función con argumentos por defecto
def crear_usuario(nombre, email, activo=True):
return {"nombre": nombre, "email": email, "activo": activo}
# Función lambda
doblar = lambda x: x * 2
# Decorador
def medir_tiempo(func):
import time
def wrapper(*args, **kwargs):
inicio = time.time()
resultado = func(*args, **kwargs)
fin = time.time()
print(f"{func.__name__} tardó {fin - inicio:.4f}s")
return resultado
return wrapper
@medir_tiempo
def procesar_datos():
# Operación que tarda
pass
Programación Orientada a Objetos
from abc import ABC, abstractmethod
from dataclasses import dataclass
# Clase tradicional
class Animal:
def __init__(self, nombre: str):
self.nombre = nombre
def hablar(self) -> str:
raise NotImplementedError
class Perro(Animal):
def hablar(self) -> str:
return f"{self.nombre} dice: ¡Guau!"
# Dataclass (Python 3.7+)
@dataclass
class Producto:
nombre: str
precio: float
cantidad: int = 0
@property
def valor_total(self) -> float:
return self.precio * self.cantidad
Programación Asíncrona
import asyncio
import aiohttp
async def buscar_datos(url: str) -> dict:
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
return await response.json()
async def main():
urls = [
"https://api.ejemplo.com/datos1",
"https://api.ejemplo.com/datos2",
"https://api.ejemplo.com/datos3",
]
# Ejecutar peticiones en paralelo
resultados = await asyncio.gather(*[buscar_datos(url) for url in urls])
return resultados
# Ejecutar
asyncio.run(main())
Herramientas del Ecosistema
Gestores de Paquetes
| Herramienta | Uso | Ventaja |
|---|---|---|
| pip | Gestor estándar | Simple y universal |
| poetry | Gestión moderna | Dependencias, entornos virtuales, publicación |
| uv | Nuevo y ultrarrápido | Velocidad increíble |
| conda | Data Science | Gestiona paquetes no-Python |
Frameworks Web
- Django - Full-stack, baterías incluidas
- Flask - Microframework flexible
- FastAPI - APIs modernas con async y tipado
- Starlette - Framework ASGI de alto rendimiento
Lista de Verificación de Aprendizaje
- Dominar sintaxis básica y tipos de datos
- Entender list comprehensions y generadores
- Aprender programación orientada a objetos
- Estudiar manejo de errores y excepciones
- Explorar async/await para I/O asíncrono
- Practicar con un proyecto real
- Contribuir a proyectos open source
Errores Comunes a Evitar
Usar→ Importa solo lo necesarioimport *Mutar listas durante iteración→ Crea una nueva listaIgnorar type hints→ Usa tipado para código más seguroClases con demasiada responsabilidad→ Sigue el principio de responsabilidad única
Recursos Esenciales
Cita
“Python es un lenguaje de programación que te permite trabajar rápidamente e integrar sistemas de forma más efectiva.” - Python.org
¡Python es un viaje increíble. Comienza con los fundamentos, practica diariamente y pronto estarás construyendo proyectos increíbles!