cargando...
cargando...
lección 2
Las variables son la memoria de tu programa. Aprende a guardar datos, nombrarlos bien y operar con ellos.
⏱ 50 min
En la lección anterior, tu programa hacía cosas pero no recordaba nada. Cada print() mostraba un texto fijo y se olvidaba inmediatamente. Eso es como un chef que no tiene encimera — cocina cada ingrediente y lo tira al suelo antes de poder combinarlo con los demás. Para hacer cualquier cosa útil, un programa necesita MEMORIA. Necesita poder guardar datos temporalmente para usarlos después. Eso es exactamente lo que son las variables.
Imagina un almacén lleno de cajas. Cada caja tiene una etiqueta con un nombre escrito con rotulador (por ejemplo: "edad", "nombre_cliente", "total_factura") y dentro de la caja hay un valor (por ejemplo: 28, "María López", 156.80). Una variable es exactamente eso: un nombre que apunta a un valor guardado en la memoria del ordenador.
Puedes hacer tres cosas con una caja: guardar algo dentro (asignar un valor), mirar qué hay dentro (leer el valor) o cambiar lo que hay dentro (reasignar). Y lo mejor: puedes tener tantas cajas como necesites. El almacén es enorme.
En Python, crear una variable es tan simple como escribir un nombre, el signo = (que aquí no significa "es igual a" sino "guarda esto aquí") y el valor que quieres almacenar:
1# Crear variables es como poner cosas en cajas con etiqueta2nombre = "Carlos"3edad = 254altura = 1.785es_estudiante = True67# Leer variables: usarlas por su nombre8print(nombre) # Muestra: Carlos9print(edad) # Muestra: 2510print(es_estudiante) # Muestra: True1112# Usar variables dentro de texto con f-strings13print(f"Me llamo {nombre}, tengo {edad} años y mido {altura}m")
El signo = significa "guarda este valor con este nombre". La f antes de las comillas permite insertar variables dentro del texto.
Imagina que en tu almacén tienes cajas de diferentes materiales. No meterías agua en una caja de cartón ni un elefante en una cajita de cerillas. Los valores también tienen "tipo" — el ordenador necesita saber si algo es un número (para poder sumar), un texto (para poder mostrarlo) o un verdadero/falso (para tomar decisiones). En Python hay cuatro tipos básicos:
Un detalle importante: "42" (con comillas) y 42 (sin comillas) son cosas DIFERENTES. El primero es texto — no puedes sumarle nada. El segundo es un número — puedes hacer matemáticas con él. Las comillas son las que determinan si algo es texto o número. Es como la diferencia entre el billete de 20€ (puedes pagar con él) y una foto de un billete de 20€ (no puedes pagar con ella aunque se vea igual).
1# Números: puedes hacer matemáticas con ellos2precio = 29.993cantidad = 34total = precio * cantidad5print(f"Total: {total} euros") # Total: 89.9767# Texto: puedes concatenarlo (pegarlo)8nombre = "Ana"9apellido = "García"10nombre_completo = nombre + " " + apellido11print(nombre_completo) # Ana García1213# Booleanos: para decisiones14mayor_de_edad = True15tiene_carnet = False16print(f"¿Mayor de edad? {mayor_de_edad}") # ¿Mayor de edad? True1718# CUIDADO: "3" + "5" no es 8, ¡es "35"! (concatenación de texto)19resultado_texto = "3" + "5"20resultado_numero = 3 + 521print(resultado_texto) # 35 (pegó dos textos)22print(resultado_numero) # 8 (sumó dos números)
El tipo importa: sumar números da un resultado matemático. "Sumar" textos los pega uno detrás del otro.
Consejo de senior: nombra tus variables como si otro programador fuera a leer tu código mañana (porque TÚ MISMO dentro de dos semanas eres ese "otro programador"). Usa nombres descriptivos: total_factura es infinitamente mejor que t o tf. Los minutos que "ahorras" con nombres cortos los pierdes multiplicados por 10 cuando intentas entender tu propio código un mes después.
Las variables no solo almacenan datos — puedes operar con ellos. Con números puedes sumar (+), restar (-), multiplicar (*), dividir (/), hacer división entera (//), obtener el resto (%) y elevar a una potencia (**). Con texto puedes concatenar (+) y repetir (*). Es como tener una calculadora programable.
1# Operaciones con números2sueldo_mensual = 25003meses = 124sueldo_anual = sueldo_mensual * meses5print(f"Sueldo anual: {sueldo_anual} euros") # 3000067# Operaciones útiles8propina = 45.609personas = 410por_persona = propina / personas11print(f"Cada uno paga: {por_persona} euros") # 11.41213# El operador % (módulo) da el RESTO de la división14galletas = 1015amigos = 316sobran = galletas % amigos17print(f"Sobran {sobran} galletas") # Sobran 1 galleta1819# Reasignar: cambiar el contenido de la caja20contador = 021print(f"Contador: {contador}") # 022contador = contador + 123print(f"Contador: {contador}") # 124contador = contador + 125print(f"Contador: {contador}") # 2
Las variables pueden cambiar de valor. contador = contador + 1 lee el valor actual, le suma 1 y guarda el resultado.
Hasta ahora tus programas son "monólogos" — hablan pero no escuchan. La función input() permite que tu programa haga una pregunta y espere una respuesta del usuario. Lo que el usuario escriba se guarda en una variable. Ojo importante: input() SIEMPRE devuelve texto (string), aunque el usuario escriba un número. Si necesitas hacer matemáticas con ello, tienes que convertirlo con int() o float().
1# Pedir texto al usuario2nombre = input("¿Cómo te llamas? ")3print(f"¡Hola, {nombre}! Bienvenido al programa.")45# Pedir un número (¡hay que convertirlo!)6edad_texto = input("¿Cuántos años tienes? ")7edad = int(edad_texto) # Convertir texto → número entero8print(f"El año que viene tendrás {edad + 1} años")910# Versión compacta: convertir directamente11peso = float(input("¿Cuánto pesas en kg? "))12altura = float(input("¿Cuánto mides en metros? "))13imc = peso / (altura ** 2)14print(f"Tu IMC es: {imc:.1f}") # :.1f muestra 1 decimal
input() siempre devuelve texto. Usa int() para enteros y float() para decimales.
Si el usuario escribe "veinte" cuando tu programa espera un número, int("veinte") explotará con un ValueError. Por ahora no te preocupes — en la Skill 3 aprenderás a manejar estos errores con try/except. Solo recuerda: input() + int()/float() es la combinación para pedir números.
Python tiene reglas estrictas sobre qué nombres puedes usar para tus cajas. No es capricho — es para evitar confusiones con el propio lenguaje:
1# ✅ Nombres correctos y descriptivos2nombre_usuario = "Ana"3total_factura = 156.804numero_intentos = 35es_valido = True67# ❌ Nombres que DAN ERROR8# 2nombre = "Ana" # No puede empezar con número9# nombre usuario = "Ana" # No puede tener espacios10# if = 5 # "if" es palabra reservada1112# ❌ Nombres que FUNCIONAN pero son horribles13x = "Ana" # ¿Qué es x? Nadie lo sabe14tf = 156.80 # ¿Total factura? ¿Temperatura final?15n = 3 # ¿Número de qué?
Un buen nombre de variable debe explicar qué contiene sin necesidad de comentarios.
Estás en un restaurante con amigos. El programa debe pedir: el total de la cuenta, el porcentaje de propina deseado y el número de personas. Calcula cuánto paga cada uno (cuenta + propina dividida entre todos).
Crea un programa que pida una temperatura en grados Celsius y la convierta a Fahrenheit. La fórmula es: F = C × 9/5 + 32. Muestra el resultado con un mensaje claro.
El programa pide nombre, profesión y email. Con esos datos, genera una tarjeta de presentación con bordes de caracteres. Usa variables para guardar cada dato, el operador * para repetir caracteres y f-strings para formatear.
Crea un programa que pregunte cuántas unidades de cada alimento has desayunado (tostadas=120cal, huevos=155cal, frutas=60cal, cafés con leche=80cal) y calcule el total de calorías.
Regístrate para guardar tu progreso.
Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.
Inicia sesión para comentar y responder.
cargando comentarios...