¿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.
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:
- 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;. - Asignación. Se guarda un valor bajo el nombre con
=. Volver a asignar sustituye el valor anterior. - 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,foroclass; - los nombres distinguen mayúsculas y minúsculas, así que
totalyTotalson 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?
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?
¿Cómo se le explica una variable a un niño?
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?
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.