Menu
Coddy logo textTech

¿Qué es una variable?

En programación, una variable es un lugar con nombre en la memoria que guarda un valor que tu programa puede leer y cambiar mientras se ejecuta. El nombre, como score o user_name, permite al código referirse al valor sin saber dónde está guardado.

Por Kevin Spektor, Cofundador y CTO

Actualizado el 24 de septiembre de 2026

Un juego que lleva la puntuación necesita recordar un número, sumarle puntos y mostrarlo al final. Ese número no se puede escribir en el código, porque es distinto cada vez que alguien juega. Así que el programa reserva un sitio en la memoria, le pone un nombre como score y usa ese nombre siempre que necesita el valor actual.

Cómo funciona una variable

A una variable le pasan tres cosas durante un programa:

  1. Creación. El programa reserva memoria para un valor y le asocia un nombre. En Python esto ocurre la primera vez que asignas algo al nombre. En Java y C primero declaras la variable, con un tipo, como en int score;.
  2. Asignación. Se guarda un valor bajo el nombre con =. Volver a asignar sustituye el valor anterior.
  3. Uso. Allí donde aparece el nombre en una expresión, el programa lee el valor que tiene en ese momento.
Start: 0
After one point: 10
Doubled: 20

En cada línea de asignación, primero se calcula el lado derecho, usando el valor que tiene score en ese momento. Después el resultado se guarda de nuevo bajo el mismo nombre. El nombre se mantiene mientras el valor que guarda varía.

El signo igual significa "guardar"

En matemáticas, x = x + 1 no tiene solución. En un programa es una instrucción normal: toma el valor actual de x, súmale 1 y guarda el resultado en x. El signo = es el operador de asignación, y siempre lleva un valor del lado derecho al nombre de la izquierda.

Para preguntar si dos valores son iguales, los lenguajes de programación usan otro operador, ==. La expresión x == 5 no cambia nada; produce True o False, un booleano.

El significado matemático está relacionado pero no es el mismo. En álgebra, la x de 2x + 3 = 7 representa un único número desconocido que tienes que despejar. En un programa, una variable guarda un valor conocido que puede cambiar mientras el programa se ejecuta.

Variables y tipos de datos

Todo valor tiene un tipo: un número entero, un número decimal, un texto, un booleano, una lista. Los lenguajes se diferencian en si la propia variable tiene un tipo.

En Python y JavaScript el tipo lo lleva el valor, y una misma variable puede guardar valores de tipos distintos a lo largo del tiempo. Esto se llama tipado dinámico:

42 <class 'int'>
forty-two <class 'str'>

En Java, C y C++, la variable tiene un tipo fijo que eliges al declararla. Esto es tipado estático: el compilador rechaza el código que intenta guardar texto en una variable int, antes incluso de que el programa se ejecute.

int age = 30;          // Java: type, name, value
String name = "Rosa";
let age = 30;          // JavaScript: can be reassigned
const PI = 3.14159;    // cannot be reassigned

En C, el tipo también decide cuánta memoria ocupa la variable. Un int ocupa 4 bytes en casi todos los sistemas actuales, un double ocupa 8 y un char exactamente 1. Para guardar muchos valores bajo un solo nombre, como todas las puntuaciones de un juego, usas un array o una lista y llegas a cada valor por su posición, como en scores[0].

Cajas y etiquetas

Una imagen habitual de una variable es una caja que guarda un valor. Esa imagen encaja bien con C: int x; es de verdad una zona fija de memoria, y y = x; copia el valor en una segunda zona.

Python funciona más bien con etiquetas. Todo valor es un objeto, y una variable es un nombre pegado a uno. La diferencia se nota cuando dos nombres se refieren a la misma lista:

5 6
[1, 2, 3, 4]

Con los números, y = y + 1 crea un número nuevo y mueve la etiqueta y hacia él, así que x sigue refiriéndose a 5. Con la lista, b = a no copia nada: los dos nombres se refieren a una sola lista, así que un cambio hecho a través de b se ve a través de a. Escribe b = a.copy() cuando quieras una lista separada. Los objetos y los arrays de Java y JavaScript se comportan igual.

Ámbito: dónde existe una variable

Una variable solo es visible en una parte del programa, llamada su ámbito (scope). Una variable creada dentro de una función es local: existe mientras la función se ejecuta y desaparece cuando la función termina. Una variable creada en el nivel superior de un archivo es global y se puede leer en cualquier parte de ese archivo.

Las variables locales son más fáciles de seguir, porque todas las líneas que pueden cambiarlas están dentro de una sola función. Los programas que dependen de muchas variables globales son más difíciles de depurar por la razón contraria.

Cómo nombrar variables

Los buenos nombres dicen qué significa el valor: total_price, is_logged_in, retries_left. La mayoría de los lenguajes comparten las mismas reglas:

  • un nombre se compone de letras, dígitos y guiones bajos, y no puede empezar por un dígito;
  • un nombre no puede ser una palabra clave del lenguaje, como if, for o class;
  • los nombres distinguen mayúsculas y minúsculas, así que total y Total son dos variables distintas.

El estilo cambia según el lenguaje. Python usa snake_case (user_name), mientras que Java y JavaScript usan camelCase (userName). Los valores que nunca deben cambiar suelen nombrarse en mayúsculas, como en MAX_SIZE.

Errores comunes

Usar una variable antes de que tenga un valor. Python se detiene con un NameError:

NameError: name 'total' is not defined

El mismo error aparece cuando un nombre está mal escrito, porque para el ordenador totla y total son nombres distintos.

Escribir = cuando quieres decir ==. En Python, if x = 5: es un error de sintaxis, así que te enteras enseguida. En C y JavaScript, if (x = 5) es código válido: guarda 5 en x, y la condición siempre es verdadera. El programa se ejecuta y da resultados incorrectos, un error lógico que puede costar mucho encontrar.

Darle dos trabajos a una variable. Una variable que guarda un precio al principio de una función y un contador al final sigue funcionando, pero cada lector tiene que seguir cuál es el significado actual. Dale a cada significado su propio nombre.

Qué leer después

Las variables guardan valores, y el siguiente paso es saber qué clases de valores hay: lee qué es un booleano para verdadero y falso, y qué es un array para muchos valores bajo un solo nombre. La guía de variables en Python trata la asignación, las reglas de nombres y la asignación múltiple con más detalle, y el curso de Python te pone a escribir y cambiar variables desde la primera lección.

Preguntas frecuentes

¿Qué es una variable en Python?
Una variable en Python es un nombre que hace referencia a un valor. La creas al asignarle algo, como en age = 30, sin declarar ningún tipo, y el mismo nombre puede referirse más tarde a un valor de otro tipo. Por convención, los nombres de variables en Python se escriben en snake_case.
¿Cuál es una definición sencilla de variable?
Una variable es un nombre para un valor que un programa guarda y puede cambiar. El nombre se mantiene mientras el valor que hay debajo puede sustituirse, igual que un marcador conserva la etiqueta "Local" mientras el número de debajo va subiendo.
¿Cómo se le explica una variable a un niño?
Compárala con una caja con una etiqueta. La etiqueta es el nombre, como score, y la caja guarda una sola cosa cada vez. Puedes mirar dentro para ver qué hay, o sacarlo y meter algo nuevo, y la etiqueta sigue siendo la misma.
¿Cuál es la diferencia entre una variable y una constante?
El valor de una variable se puede cambiar después de asignarlo, mientras que el de una constante queda fijo una vez asignado. Java marca las constantes con final, y JavaScript y C usan const. Python no tiene constantes obligatorias, así que los programadores escriben el nombre en mayúsculas, como MAX_USERS, para indicar que no debe cambiar.
¿Qué tipos de variables hay en programación?
Las variables se suelen agrupar según dónde son visibles: las variables locales existen dentro de una función, las globales son visibles en todo un archivo o programa, y las variables de instancia pertenecen a un objeto concreto de una clase. También se describen por el tipo de valor que guardan, como entero, número de coma flotante, string o booleano.
Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR