Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Concepto de Variables

Imagínate que eres el encargado de un almacén gigante. Tienes miles de cajas de diferentes tamaños, colores y formas. Cada caja puede guardar algo específico, y cada una tiene una etiqueta para saber qué contiene. Eso es exactamente lo que son las variables en programación.

¿Qué es una variable?

💭 Nota del autor: Cuando enseño programación, siempre empiezo con esta analogía del almacén porque hace que un concepto abstracto como las “variables” se vuelva algo que puedes visualizar. Verás que esta analogía nos seguirá ayudando cuando lleguemos a conceptos más complejos.

Una variable es como una caja etiquetada en la memoria de tu computadora donde puedes guardar información para usarla después. Es uno de los conceptos más fundamentales en programación, y por suerte, es bastante intuitivo.

La analogía completa del almacén:

# Tu computadora es como un almacén gigante
# Las variables son las cajas etiquetadas
# Los valores son lo que guardas dentro de cada caja

nombre = "Ana"        # Caja etiquetada "nombre" con "Ana" adentro
edad = 25            # Caja etiquetada "edad" con 25 adentro
altura = 1.65        # Caja etiquetada "altura" con 1.65 adentro
es_estudiante = True # Caja etiquetada "es_estudiante" con True adentro

¿Ves lo que estamos haciendo? Estamos creando cajas con etiquetas (nombres de variables) y guardando diferentes tipos de información dentro de ellas.

¿Por qué necesitamos variables?

Déjame mostrarte por qué las variables son tan importantes con un ejemplo sencillo:

Sin variables (muy difícil):

print("Hola, mi nombre es Ana")
print("Ana tiene 25 años")
print("Ana mide 1.65 metros")
print("Ana es estudiante")
print("El año que viene Ana tendrá 26 años")

¿Qué pasa si quieres cambiar “Ana” por “Carlos”? ¡Tienes que cambiar 5 líneas! Imagina si tu programa tuviera cientos de líneas… sería un desastre.

Con variables (mucho mejor):

# Creamos nuestras "cajas"
nombre = "Ana"
edad = 25
altura = 1.65
es_estudiante = True

# Usamos las cajas
# 🌟 Usando f-strings (recomendado)
print(f"Hola, mi nombre es {nombre}")
print(f"{nombre} tiene {edad} años")
print(f"{nombre} mide {altura} metros")
print(f"{nombre} es estudiante: {es_estudiante}")
print(f"El año que viene {nombre} tendrá {edad + 1} años")

Ahora, si quieres cambiar “Ana” por “Carlos”, ¡solo cambias una línea! Esto hace que tu código sea mucho más fácil de mantener y modificar.

Anatomía de una variable

Cada variable tiene tres partes principales:

1. Nombre (la etiqueta de la caja)

nombre = "Ana"
#  ↑
# Esta es la etiqueta

El nombre es como la etiqueta que le pones a tu caja. Debe ser descriptivo para que sepas qué hay dentro sin tener que abrirla.

2. Operador de asignación (el signo =)

nombre = "Ana"
#      ↑
# Esto significa "guardar en"

El signo igual (=) en programación no significa “igual que” como en matemáticas. Significa “guarda el valor de la derecha en la variable de la izquierda”.

3. Valor (el contenido de la caja)

nombre = "Ana"
#        ↑
# Esto es lo que guardamos

El valor es lo que realmente estás guardando en la caja. Puede ser texto, números, valores verdadero/falso, y muchas otras cosas que veremos más adelante.

Tipos de cajas en nuestro almacén

💭 Nota del autor: Como mencioné en la sección de tipos de datos, me gusta pensar en los tipos de datos como elementales (básicos) y compuestos. Aquí nos enfocaremos en los tipos elementales, que son como los ladrillos básicos con los que construiremos estructuras más complejas después.

En nuestro almacén de variables, tenemos diferentes tipos de cajas para diferentes tipos de cosas:

🔵 Cajas azules (números enteros - int)

# Estas cajas solo guardan números sin decimales
edad = 25
año = 2024
puntos = 1500
temperatura = -5

# Son perfectas para:
# - Edades
# - Años
# - Cantidades exactas
# - Puntuaciones

🟢 Cajas verdes (números decimales - float)

# Estas cajas guardan números con decimales
altura = 1.75
precio = 29.99
temperatura = 36.5
porcentaje = 85.7

# Son perfectas para:
# - Medidas
# - Precios
# - Temperaturas
# - Porcentajes

🟡 Cajas amarillas (texto - str)

# Estas cajas guardan texto (siempre entre comillas)
nombre = "Ana García"
mensaje = "¡Hola mundo!"
email = "ana@email.com"
direccion = "Calle Falsa 123"

# Son perfectas para:
# - Nombres
# - Mensajes
# - Direcciones
# - Cualquier texto

🔴 Cajas rojas (verdadero/falso - bool)

# Estas cajas solo guardan True o False
es_estudiante = True
tiene_trabajo = False
esta_casado = True
es_fin_semana = False

# Son perfectas para:
# - Estados (sí/no)
# - Condiciones
# - Permisos
# - Cualquier cosa que sea verdadero o falso

Creando y usando variables

Vamos a ver cómo trabajar con estas cajas paso a paso:

Paso 1: Crear la caja

# Sintaxis: nombre_de_la_caja = contenido
mi_nombre = "Tu nombre aquí"

Es como tomar una caja del almacén, ponerle una etiqueta que dice “mi_nombre”, y meter dentro el texto “Tu nombre aquí”.

Paso 2: Usar la caja

mi_nombre = "Ana"
# 🌟 Con f-string (recomendado)
print(f"Hola, {mi_nombre}")  # Hola, Ana
print(f"¿Cómo estás, {mi_nombre}?")  # ¿Cómo estás, Ana?

# También puedes usar concatenación
print("Hola, " + mi_nombre)  # Hola, Ana

Paso 3: Cambiar el contenido de la caja

mi_nombre = "Ana"
print(f"Nombre inicial: {mi_nombre}")  # Ana

# Cambiar el contenido
mi_nombre = "Carlos"
print(f"Nombre actualizado: {mi_nombre}")  # Carlos

Es como vaciar la caja y meter algo nuevo. ¡Así de simple!

Ejemplo práctico: Organizando información de una tienda

Imagínate que tienes una tienda y necesitas organizar información de productos. Las variables te ayudan a mantener todo ordenado:

# ================================
# INFORMACIÓN DEL PRODUCTO
# ================================

# Cajas amarillas (texto)
nombre_producto = "Laptop Gaming"
marca = "TechPro"
modelo = "X1-2024"
descripcion = "Laptop para gaming de alta gama"

# Cajas azules (números enteros)
cantidad_stock = 15
año_lanzamiento = 2024
garantia_meses = 24

# Cajas verdes (números decimales)
precio = 25999.99
peso_kg = 2.5
pantalla_pulgadas = 15.6

# Cajas rojas (verdadero/falso)
esta_disponible = True
es_nuevo = True
incluye_mouse = False
tiene_descuento = True

# ================================
# MOSTRAR INFORMACIÓN
# ================================

print("=== INFORMACIÓN DEL PRODUCTO ===")
# 🌟 Usando f-strings para mostrar información
print(f"Producto: {nombre_producto}")
print(f"Marca: {marca}")
print(f"Modelo: {modelo}")
print(f"Descripción: {descripcion}")
print()

print("=== ESPECIFICACIONES ===")
print(f"Precio: ${precio:,.2f}")  # Formato con separador de miles y 2 decimales
print(f"Peso: {peso_kg} kg")
print(f"Pantalla: {pantalla_pulgadas} pulgadas")
print(f"Año de lanzamiento: {año_lanzamiento}")
print(f"Garantía: {garantia_meses} meses")
print()

print("=== DISPONIBILIDAD ===")
print(f"En stock: {cantidad_stock} unidades")
print(f"Disponible: {'Sí' if esta_disponible else 'No'}")  # Expresión condicional
print(f"Producto nuevo: {'Sí' if es_nuevo else 'No'}")
print(f"Incluye mouse: {'Sí' if incluye_mouse else 'No'}")
print(f"Tiene descuento: {'Sí' if tiene_descuento else 'No'}")

💡 Comprueba tu comprensión: ¿Qué pasaría si necesitaras cambiar el precio del producto? ¿Cuántas líneas tendrías que modificar? ¿Y si quisieras añadir un 10% de descuento al precio?

Variables que cambian de contenido

Una de las cosas más útiles de las variables es que puedes cambiar su contenido a medida que tu programa se ejecuta:

# Empezamos con una caja
puntos_juego = 0
print(f"Puntos iniciales: {puntos_juego}")  # 0

# El jugador gana puntos
puntos_juego = 100
print(f"Después del primer nivel: {puntos_juego}")  # 100

# Gana más puntos
puntos_juego = puntos_juego + 150  # También podemos escribir: puntos_juego += 150
print(f"Después del segundo nivel: {puntos_juego}")  # 250

# Pierde puntos
puntos_juego = puntos_juego - 50  # También podemos escribir: puntos_juego -= 50
print(f"Después de perder una vida: {puntos_juego}")  # 200

💡 Comprueba tu comprensión: ¿Qué valor tendría puntos_juego si después añadimos puntos_juego *= 2? ¿Y si luego añadimos puntos_juego /= 4?

Copiando contenido entre cajas

Puedes tomar el contenido de una caja y copiarlo a otra:

# Caja original
nombre_original = "Ana"

# Copiar el contenido a otra caja
nombre_copia = nombre_original

print(f"Original: {nombre_original}")  # Ana
print(f"Copia: {nombre_copia}")       # Ana

# Si cambias la copia, el original no se afecta
nombre_copia = "Carlos"

print(f"Original: {nombre_original}")  # Ana (no cambió)
print(f"Copia: {nombre_copia}")       # Carlos

Esto es importante porque demuestra que cada variable es independiente. Cuando copias el valor, estás creando una nueva caja con el mismo contenido, no vinculando las dos cajas.

Usando variables en operaciones

Las variables son especialmente útiles cuando haces cálculos:

# Información de un rectángulo
largo = 10
ancho = 5

# Calcular área usando las variables
area = largo * ancho
print(f"El área es: {area} unidades cuadradas")  # 50

# Calcular perímetro
perimetro = 2 * (largo + ancho)
print(f"El perímetro es: {perimetro} unidades")  # 30

# Si cambias las dimensiones, todos los cálculos se actualizan
largo = 15
ancho = 8

# Recalculamos con los nuevos valores
area = largo * ancho
perimetro = 2 * (largo + ancho)

print(f"Nueva área: {area} unidades cuadradas")        # 120
print(f"Nuevo perímetro: {perimetro} unidades")  # 46

💡 Comprueba tu comprensión: ¿Qué pasaría si definiéramos una nueva variable altura = 3 y quisiéramos calcular el volumen del prisma rectangular? ¿Cómo lo harías?

Ejercicio práctico: Tu almacén personal

Vamos a crear un programa que simule tu almacén personal de información. Copia este código y personalízalo con tu información:

# ================================
# MI ALMACÉN PERSONAL DE VARIABLES
# ================================

print("=== ORGANIZANDO MI ALMACÉN ===")
print()

# Caja 1: Información básica
print("📦 Creando caja amarilla para mi nombre...")
mi_nombre = "Tu nombre aquí"  # Cambia esto por tu nombre
print(f"   Contenido: {mi_nombre}")

print("📦 Creando caja azul para mi edad...")
mi_edad = 25  # Cambia por tu edad
print(f"   Contenido: {mi_edad}")

print("📦 Creando caja verde para mi altura...")
mi_altura = 1.70  # Cambia por tu altura
print(f"   Contenido: {mi_altura}")

print("📦 Creando caja roja para si tengo mascota...")
tengo_mascota = True  # Cambia según tu situación
print(f"   Contenido: {tengo_mascota}")

print()
print("=== INVENTARIO DE MI ALMACÉN ===")
print(f"Nombre: {mi_nombre} - Tipo de caja: {type(mi_nombre)}")
print(f"Edad: {mi_edad} - Tipo de caja: {type(mi_edad)}")
print(f"Altura: {mi_altura} - Tipo de caja: {type(mi_altura)}")
print(f"Tengo mascota: {tengo_mascota} - Tipo de caja: {type(tengo_mascota)}")

print()
print("=== USANDO EL CONTENIDO DE MIS CAJAS ===")
print(f"Hola, soy {mi_nombre}")
print(f"Tengo {mi_edad} años y mido {mi_altura} metros")

if tengo_mascota:
    print("¡Y tengo una mascota!")
else:
    print("No tengo mascota, pero me gustaría tener una.")

# Calculando con las cajas
edad_en_meses = mi_edad * 12
print(f"Mi edad en meses es aproximadamente: {edad_en_meses}")

# Calculando edad en días (aproximado)
edad_en_dias = mi_edad * 365
print(f"He vivido aproximadamente {edad_en_dias:,} días")  # Con formato de miles

💡 Desafío: Añade más variables a tu almacén personal. Por ejemplo, tu película favorita, tu peso, si te gusta programar, etc. Luego, crea algunos cálculos interesantes con esas variables.

Errores comunes con variables

Cuando trabajas con variables, hay algunos errores comunes que debes evitar:

1. Usar una variable antes de crearla

# ❌ ERROR
print(nombre)  # Error: name 'nombre' is not defined
nombre = "Ana"

# ✅ CORRECTO
nombre = "Ana"
print(nombre)

Python lee tu código de arriba hacia abajo, así que debes crear la caja antes de intentar ver qué hay dentro.

2. Confundir el nombre con el contenido

# ❌ ERROR - intentar usar el contenido como nombre
"Ana" = 25  # Error: can't assign to literal

# ✅ CORRECTO - el nombre va a la izquierda
nombre = "Ana"
edad = 25

Recuerda: la etiqueta (nombre de la variable) siempre va a la izquierda del signo igual.

3. Olvidar las comillas en texto

# ❌ ERROR
nombre = Ana  # Error: name 'Ana' is not defined

# ✅ CORRECTO
nombre = "Ana"  # o 'Ana'

Sin comillas, Python piensa que Ana es otra variable, no un texto.

Consejos para organizar tu almacén

Después de años programando, he aprendido algunos trucos para mantener mi “almacén” de variables bien organizado:

1. Agrupa variables relacionadas

# Información de una persona
nombre = "Ana"
apellido = "García"
edad = 25
email = "ana@email.com"

# Información de un producto (separado claramente)
producto_nombre = "Laptop"
producto_precio = 15000
producto_stock = 10

2. Usa nombres que expliquen el contenido

# ✅ BUENO - nombres descriptivos
precio_producto = 100
edad_usuario = 25
nombre_completo = "Ana García"

# ❌ MALO - nombres confusos
p = 100  # ¿p de precio? ¿de peso? ¿de puntos?
x = 25   # ¿qué representa x?
n = "Ana García"  # ¿n de nombre? ¿de...?

3. Mantén un orden lógico

# ✅ BUENO - primero las variables, luego los cálculos
base = 10
altura = 5
area = base * altura

# ❌ MALO - todo mezclado
base = 10
area = base * altura  # ¿altura? Aún no existe
altura = 5

💡 Consejo personal: Yo siempre comento mis variables cuando trabajo en proyectos grandes. Por ejemplo: total_ventas = 0 # Acumulador para ventas del día. Esto me ayuda a recordar para qué sirve cada variable cuando reviso mi código semanas después.

Resumen

Las variables son como cajas etiquetadas en el almacén de la memoria de tu computadora:

  • ✅ Cada caja tiene un nombre (etiqueta) que debe ser descriptivo
  • ✅ Cada caja guarda un valor (contenido) de un tipo específico
  • ✅ Puedes cambiar el contenido cuando quieras, pero el tipo puede cambiar
  • ✅ Hay diferentes tipos de cajas para diferentes tipos de contenido
  • ✅ Usar variables hace tu código más fácil de leer y mantener

En la siguiente sección vamos a explorar en detalle los diferentes tipos de cajas (tipos de datos) que puedes usar en tu almacén de variables.


💡 Recuerda: Cada vez que creas una variable, estás organizando mejor tu almacén de información. Un almacén bien organizado (código con buenas variables) es fácil de encontrar lo que necesitas y hacer cambios cuando sea necesario. ¡La organización es la clave del éxito en programación!