Variables:
Cajas con Etiqueta
Guardar información para usarla después
Imagina una caja física
Una variable es una caja con una etiqueta. La etiqueta es el nombre de la variable. El contenido de la caja es el valor. Cuando quieres saber qué hay dentro, usas la etiqueta.
En Python: nombre_de_la_caja = contenido
= en Python no significa "igual". Significa "guarda esto en la caja". Lee nombre = "Abel" como: "en la caja llamada nombre, guarda la palabra Abel".# Así se crean variables en Python # (igual que hizo Dani en clase) nombre_instructor = "Abel Quirós" sesion_actual = 4 programa_activo = True precio_curso = 800.0 # Para usar la variable, escribes su nombre print(nombre_instructor) # → "Abel Quirós" print(sesion_actual) # → 4
temperatura_claude después de ejecutar este código?temperatura_claude = 0.7 temperatura_claude = 0.3 modelo = "claude-sonnet"
Tipos de Datos:
¿Qué cabe en la caja?
str, int, float, bool — y por qué importa
Las cajas tienen forma
No todas las cajas son iguales. Una caja de huevos no sirve para guardar agua. En Python, el tipo de dato define qué operaciones puedes hacer con él.
Con texto puedes concatenar. Con números puedes sumar. Si mezclas tipos sin cuidado, Python se queja.
"0.3" con comillas es texto (no puedes sumarle números). 0.3 sin comillas es número (sí puedes). Si ves comillas → es str.# Tipos que usas al llamar a la API de Claude modelo = "claude-sonnet-4" # str → texto max_tokens = 1000 # int → entero temperatura = 0.3 # float → decimal streaming = True # bool → sí/no # Python detecta el tipo automáticamente type(modelo) # → <class 'str'> type(max_tokens) # → <class 'int'> # CUIDADO: esto da error total = max_tokens + " tokens" # ❌ no mezcles total = str(max_tokens) + " tokens" # ✅ convierte primero
Funciones:
La Máquina Reutilizable
def — crea código que puedes usar mil veces
Una máquina de café
Una función es una máquina con botón. Le metes ingredientes (parámetros), aprietas el botón (llamas a la función) y te devuelve el resultado (return). No necesitas saber cómo funciona por dentro — solo cómo usarla.
Ventaja clave: la defines una vez, la usas mil veces. Si cambias algo dentro, cambia en todos los sitios donde la usas.
def viene de "definir". return viene de "devolver". Cuando veas def es el momento de crear la máquina. Cuando veas el nombre seguido de () es el momento de usarla.# Función para construir el prompt de Claude # (como las que usa Dani con la API) def construir_prompt(rol, tarea, formato): """Ensambla un prompt con los 3 componentes""" prompt = f"Actúa como {rol}. Tu tarea: {tarea}. Formato: {formato}" return prompt # Usar la función (llamarla) mi_prompt = construir_prompt( rol = "abogado bancario", tarea = "revisar contratos", formato = "JSON" ) print(mi_prompt) # → "Actúa como abogado bancario. Tu tarea: revisar contratos. Formato: JSON"
calcular_costo(4, 0.08)?def calcular_costo(num_herramientas, costo_por_herramienta): interacciones = num_herramientas * 2.5 total = interacciones * costo_por_herramienta return total
saludar_agente que reciba el nombre del agente y devuelva el texto: "Hola, soy [nombre] y estoy listo."Listas:
El Carrito de la Compra
Guardar varios valores en una sola variable
Lista del super
Una lista es un carrito de la compra: puede tener varios artículos, en orden, y puedes añadir o quitar cosas. En Python se escribe con corchetes [ ] y los elementos separados por comas.
Importante: los índices empiezan en 0, no en 1. El primer elemento es lista[0].
lista[N-1] (porque Python cuenta desde 0, como los pisos en Europa — planta baja = 0).# Lista de herramientas de un agente herramientas = ["buscar", "calcular", "ejecutar", "enviar_email"] # Acceder por índice (empieza en 0) print(herramientas[0]) # → "buscar" print(herramientas[2]) # → "ejecutar" # Añadir / quitar elementos herramientas.append("leer_pdf") # añade al final herramientas.remove("enviar_email") # elimina # Cuántos elementos tiene len(herramientas) # → 4 # Los idiomas de Tribo (del ejemplo de Abel) idiomas_tribo = ["español", "inglés", "portugués"]
print(tecnicas[1])?tecnicas = ["Zero-Shot", "Few-Shot", "Chain of Thought", "ReAct"]
Diccionarios:
La Ficha de Contacto
Datos organizados por nombre, no por posición
Ficha de contacto
Un diccionario es una ficha de contacto: cada dato tiene un nombre (clave) y un valor. En vez de recordar "el segundo dato es el teléfono", dices directamente contacto["telefono"].
Se escribe con llaves { } y pares "clave": valor. Esto es exactamente la estructura de un JSON.
# Configuración de Claude como diccionario # (igual que el payload que envías a la API) config_claude = { "model" : "claude-sonnet-4", "max_tokens" : 1000, "temperature": 0.3, "stream" : False } # Acceder a valores por clave print(config_claude["model"]) # → "claude-sonnet-4" print(config_claude["max_tokens"]) # → 1000 # Modificar un valor config_claude["temperature"] = 0.7 # Añadir una clave nueva config_claude["top_p"] = 0.9
agente["idiomas"][0]?agente = { "nombre" : "Tribo", "version" : 2.1, "idiomas" : ["español", "inglés", "portugués"] }
mi_agente con al menos 4 claves: nombre (str), temperatura (float), herramientas (lista con 2 elementos), y activo (bool). Luego imprime el valor de la clave "nombre".