
Trocea tu código en funciones con Claude Code
En matemáticas y en física ya sabéis qué es una función: algo que recibe una entrada y devuelve una salida, siempre con la misma regla. En programación es exactamente la misma idea, y hoy vamos a usar Claude Code para convertir un cálculo de física que se repite tres veces —la Ley de Gravitación Universal de Newton— en una sola función reutilizable, comprobando con nuestros propios ojos que el resultado no cambia ni un decimal. Aquí tienes el proceso completo, con el código de antes y de después, para que lo repitas tú mismo.
El problema que resuelve
Cuando un programa calcula lo mismo varias veces con datos distintos, lo más fácil a primera vista es copiar el bloque de código y cambiar los números. El problema aparece después: si hay que corregir la fórmula, hay que acordarse de corregirla en todos los sitios donde se copió, y es fácil que se te olvide uno. Una función arregla las dos cosas: la fórmula vive en un solo sitio, y usarla en un caso nuevo es tan sencillo como escribir una línea con los datos de ese caso.
Lo que necesitas antes de empezar
Claude Code instalado y funcionando en tu ordenador, y una base de programación en Python con variables, condicionales, bucles y funciones ya vistas de forma sencilla en clase (no hace falta haber usado Claude Code antes — este puede ser tu primer contacto real con él). El ejemplo usa la Ley de Gravitación Universal de Newton (F = G × m₁ × m₂ / r²), contenido de física de Bachillerato, pero el método sirve para cualquier fórmula que se repita con datos distintos: la energía cinética, la Ley de Coulomb, una media o una desviación típica.
Paso 1 — Escribe (o parte de) un programa con la fórmula repetida
Empieza con un programa que calcule lo mismo varias veces, copiando y pegando el bloque de cálculo con datos distintos cada vez. Este es el ejemplo real usado, que calcula la fuerza de gravedad entre tres pares de cuerpos:
python
# Calculamos la fuerza de atraccion gravitatoria entre distintos pares de cuerpos
# F = G * m1 * m2 / r^2 (Ley de Gravitacion Universal de Newton)
G = 6.674e-11 # constante de gravitacion universal (N*m^2/kg^2)
# Caso 1: Tierra y Luna
masa1 = 5.972e24 # masa de la Tierra (kg)
masa2 = 7.348e22 # masa de la Luna (kg)
distancia = 3.844e8 # distancia media Tierra-Luna (m)
fuerza = G * masa1 * masa2 / distancia ** 2
print("Fuerza entre la Tierra y la Luna:", fuerza, "N")
# Caso 2: Tierra y Sol
masa1 = 5.972e24 # masa de la Tierra (kg)
masa2 = 1.989e30 # masa del Sol (kg)
distancia = 1.496e11 # distancia media Tierra-Sol (m)
fuerza = G * masa1 * masa2 / distancia ** 2
print("Fuerza entre la Tierra y el Sol:", fuerza, "N")
# Caso 3: Marte y el Sol
masa1 = 6.417e23 # masa de Marte (kg)
masa2 = 1.989e30 # masa del Sol (kg)
distancia = 2.279e11 # distancia media Marte-Sol (m)
fuerza = G * masa1 * masa2 / distancia ** 2
print("Fuerza entre Marte y el Sol:", fuerza, "N")
Ejecútalo y guarda los resultados — los necesitarás en el paso 3 para comprobar que nada cambia:
Fuerza entre la Tierra y la Luna: 1.9820216361078954e+20 N
Fuerza entre la Tierra y el Sol: 3.542236855858046e+22 N
Fuerza entre Marte y el Sol: 1.6400775141557086e+21 N
Paso 2 — Pide el refactor a Claude Code, pidiendo también que lo compruebe
Abre Claude Code en la carpeta del archivo y pega este prompt, probado antes de publicar este tutorial:
“Aquí tienes un programa que calcula la fuerza de gravedad entre varios pares de cuerpos, pero repite la misma fórmula copiada y pegada tres veces con distintos números. Ayúdame a identificar qué se repite y convertirlo en una función reutilizable, sin cambiar el resultado de los cálculos. Después de refactorizarlo, comprueba de verdad que los resultados son idénticos a los del programa original — no me expliques solo por qué deberían serlo, ejecútalo y compáralo — y explícame en un par de frases qué papel juegan los parámetros de la función en que el resultado no cambie.”
Fíjate en las tres partes del prompt: qué se repite, que no cambie el resultado, y que lo compruebe ejecutando, no solo explicando. Esa última parte es la más importante y la que más se suele olvidar al pedir un refactor.
Paso 3 — Revisa el resultado, no solo la explicación
Claude Code debería devolverte algo parecido a esto:
python
def fuerza_gravitatoria(masa1, masa2, distancia):
"""Calcula la fuerza de atraccion gravitatoria entre dos cuerpos (Ley de Newton)."""
G = 6.674e-11 # constante de gravitacion universal (N*m^2/kg^2)
return G * masa1 * masa2 / distancia ** 2
# Caso 1: Tierra y Luna
fuerza_tierra_luna = fuerza_gravitatoria(5.972e24, 7.348e22, 3.844e8)
print("Fuerza entre la Tierra y la Luna:", fuerza_tierra_luna, "N")
# Caso 2: Tierra y Sol
fuerza_tierra_sol = fuerza_gravitatoria(5.972e24, 1.989e30, 1.496e11)
print("Fuerza entre la Tierra y el Sol:", fuerza_tierra_sol, "N")
# Caso 3: Marte y el Sol
fuerza_marte_sol = fuerza_gravitatoria(6.417e23, 1.989e30, 2.279e11)
print("Fuerza entre Marte y el Sol:", fuerza_marte_sol, "N")
Ejecútalo tú mismo y compara los tres resultados, número por número, con los que guardaste en el paso 1 — en la prueba de este tutorial salieron idénticos hasta el último decimal. No te fíes solo de que la explicación de Claude Code “suene bien”: comprobarlo tú mismo es la mitad del ejercicio.
Si te pasa que Claude Code, además del refactor que pediste, cambia algo más que no pediste explícitamente (por ejemplo, renombrar las variables masa1, masa2 de cada caso por nombres más descriptivos como masa_tierra o masa_sol), no te asustes ni lo rechaces sin más: pregúntale por qué lo ha hecho. En la prueba de este tutorial, ese cambio extra tenía una razón real — los nombres genéricos repetidos se sobrescribían entre bloque y bloque, lo cual funcionaba pero no era buena práctica.
Paso 4 — Añade un caso nuevo gratis
La prueba de verdad de que el refactor mereció la pena es lo fácil que es ahora añadir un caso más, sin volver a escribir la fórmula:
python
fuerza_jupiter_sol = fuerza_gravitatoria(1.898e27, 1.989e30, 7.785e11)
print("Fuerza entre Jupiter y el Sol:", fuerza_jupiter_sol, "N")
Una sola línea, frente a las cuatro que habría costado copiando y pegando el bloque completo como al principio.
Avisos
Este puede ser el primer contacto real del alumnado con Claude Code, más allá de conversar con Claude: conviene explicar antes que Claude Code trabaja directamente sobre archivos de verdad de tu ordenador, no solo sobre lo que se pega en un chat. Insiste también en que revisar y ejecutar el resultado no es opcional: es la parte del ejercicio que enseña de verdad a no fiarse ciegamente de lo que genera la IA, por bien explicado que quede.
Idea para llevarse a casa
Una función en programación es la misma idea que una función en matemáticas: una regla fija que recibe unos datos de entrada y devuelve siempre el mismo resultado para esos datos. En cuanto veas la misma fórmula repetida más de una vez en un programa, esa repetición es la señal de que toca convertirla en función — y comprobar que el resultado no cambia es tan importante como pedir el cambio.


