🐍 Guía de Aula Invertida
vistas

Dominando las Variables en Python

Es la herramienta más básica y más usada en cualquier programa: el nombre que le das a un dato para poder usarlo, cambiarlo y recuperarlo más adelante. Aprende a crearlas, nombrarlas bien y entender qué ocurre realmente en memoria, con ejemplos que puedes editar y ejecutar en vivo.

RC
Ing. Roy Carrasco
Facultad de Ingeniería de Sistemas · UAB

Bienvenido

Una variable es la herramienta más básica y más usada en cualquier programa: es el nombre que le das a un dato para poder usarlo, cambiarlo y recuperarlo más adelante. Todo lo que has visto en las guías anteriores —imprimir texto, guardar tipos de datos— depende de que sepas crear y manejar variables correctamente.

Objetivo del módulo

Al finalizar esta guía sabrás crear variables, seguir las reglas y convenciones de nombres de Python, reasignar e intercambiar valores, entender qué significa realmente que una variable "apunte" a un objeto, y evitar los errores más comunes de principiante.

💻 Código en vivo

Todos los bloques con el encabezado Python son editables: presiona ✏️ Editar para modificar el código y ▶ Ejecutar para correrlo de verdad en tu navegador (usa Pyodide, un Python real compilado a WebAssembly). La primera ejecución tarda unos segundos porque descarga el intérprete.

📖 Aprende

Cómo Python crea y maneja variables por dentro.

💻 Practica

Ejemplos editables y ejecutables en cada sección.

🎯 Domina

Convenciones de nombres y los errores que evitan la mayoría de los principiantes.

¿Qué es una variable?

Una variable es un nombre asociado a un valor guardado en memoria. En lenguajes como C o Java suele explicarse como una "caja" que contiene un valor; en Python es más preciso pensar en ella como una etiqueta pegada a un objeto que ya existe en memoria.

Python
nombre = "Roy"
edad = 30
print(nombre)
print(edad)
Caja vs. etiqueta

Esta diferencia parece sutil, pero es clave: más adelante en esta guía verás que dos "etiquetas" pueden apuntar al mismo objeto, y modificar uno afecta lo que ves a través del otro. Con la metáfora de la "caja" ese comportamiento resulta confuso.

Crear y asignar variables

Para crear una variable en Python basta con escribir su nombre, el operador = y el valor que quieres guardar. No es necesario declarar el tipo por adelantado, a diferencia de otros lenguajes.

Python
ciudad = "Cochabamba"
temperatura = 18.5
es_feriado = False
print(ciudad, temperatura, es_feriado)
Comparación con otros lenguajes

En Java o C escribirías algo como int edad = 20;, indicando el tipo antes del nombre. En Python solo escribes edad = 20: Python infiere el tipo a partir del valor que le asignas.

Reglas para nombrar variables

Python exige que los nombres de variable cumplan ciertas reglas. Si no las cumples, obtendrás un SyntaxError antes siquiera de ejecutar el programa.

ReglaVálidoInválido
Debe empezar con letra o guion bajo_total, nombre22nombre
Solo letras, números y guion bajoprecio_finalprecio-final
Distingue mayúsculas de minúsculasNombrenombre
No puede ser una palabra reservadavalor_claseclass
Python
_total = 100
nombre2 = "Ana"
print(_total, nombre2)

Ejecuta este bloque para ver en vivo el error al empezar un nombre con un número:

Python
2nombre = "esto falla"
print(2nombre)

Convenciones de estilo

Más allá de lo que Python exige para que el código funcione, la comunidad sigue una guía de estilo llamada PEP 8. Para variables, la convención es snake_case: minúsculas separadas por guiones bajos.

EstiloEjemploUso en Python
snake_casenombre_completoVariables y funciones (recomendado)
camelCasenombreCompletoComún en Java/JavaScript, no en Python
PascalCaseNombreCompletoReservado para nombres de clases
Python
nombre_completo = "Ana López"
precio_total = 45.90
print(nombre_completo, precio_total)
Nombres descriptivos

Además del estilo, elige nombres que expliquen qué contienen: promedio_estudiante es mucho más claro que p o x1, sobre todo cuando el programa crece.

Reasignar variables

Una variable puede reasignarse tantas veces como necesites, incluso cambiando de tipo, porque Python es de tipado dinámico.

Python
puntaje = 0
print(puntaje)
puntaje = 10
print(puntaje)
puntaje = puntaje + 5
print(puntaje)
Operadores de asignación aumentada

Escribir puntaje = puntaje + 5 es tan común que Python ofrece una forma corta: puntaje += 5. Ambas líneas hacen exactamente lo mismo.

Python
puntaje = 10
puntaje += 5
print(puntaje)
puntaje -= 2
print(puntaje)
OperadorEquivale a
x += nx = x + n
x -= nx = x - n
x *= nx = x * n
x /= nx = x / n

Asignación múltiple

Python permite asignar varias variables en una sola línea, separando nombres y valores por comas.

Python
nombre, edad, activo = "Roy", 30, True
print(nombre, edad, activo)

También puedes asignar el mismo valor a varias variables a la vez:

Python
x = y = z = 0
print(x, y, z)
Intercambiar valores sin variable temporal

En muchos lenguajes, intercambiar el contenido de dos variables requiere una tercera variable auxiliar. En Python, la asignación múltiple lo resuelve en una sola línea.

Python
a = 5
b = 10
a, b = b, a
print(a, b)

Variables como referencias a objetos

Volvamos a la idea de la "etiqueta": cuando asignas una variable a otra, ambas quedan apuntando al mismo objeto en memoria, no a una copia independiente.

Python
a = [1, 2, 3]
b = a
b.append(4)
print(a)
print(b)
¿Por qué cambió "a" si solo modifiqué "b"?

Porque a y b son dos etiquetas para el mismo objeto lista. Esto no ocurre con tipos inmutables como int, float, str o bool, que nunca cambian de contenido una vez creados.

La función id() te muestra la dirección de memoria de un objeto, y el operador is compara si dos variables apuntan al mismo objeto (a diferencia de ==, que compara si los valores son iguales).

Python
x = [1, 2]
y = [1, 2]
print(x == y)
print(x is y)
Igualdad no es identidad

x e y tienen el mismo contenido (== es True), pero son dos objetos distintos en memoria (is es False). Esta distinción será clave más adelante, cuando trabajes con objetos en POO.

Constantes por convención

Python no tiene una palabra clave como const para crear constantes verdaderas. En su lugar, la comunidad usa una convención: los nombres en MAYÚSCULAS indican que ese valor no debería cambiar.

Python
PI = 3.14159
IVA = 0.13
MAX_INTENTOS = 3
print(PI, IVA, MAX_INTENTOS)
Solo una convención

Python no impide reasignar PI; nada se rompe técnicamente si lo haces. Es una señal para otros programadores (y para ti mismo) de que ese valor está pensado para no cambiar durante la ejecución del programa.

Errores comunes

❌ Usar una variable antes de crearla

print(saldo) antes de que saldo exista produce NameError: Python lee el programa de arriba hacia abajo.

❌ Empezar el nombre con un número

2nombre = "x" produce SyntaxError. Los nombres deben empezar con letra o guion bajo.

❌ Usar una palabra reservada

class = "A" produce SyntaxError: class, for, if, etc. están reservadas por el lenguaje.

Prueba el error

Ejecuta este bloque para observar en vivo el NameError al usar una variable antes de crearla.

Python
print(saldo)
saldo = 100
Corrígelo

Edita el bloque anterior e intercambia el orden de las dos líneas para que saldo se cree antes de imprimirse.

Ejercicios Propuestos

Pon en práctica lo aprendido resolviendo los siguientes ejercicios directamente en el bloque editable.

  1. Crea variables para tu nombre, tu edad y tu promedio, e imprímelas en una sola línea.
  2. Usa asignación múltiple para crear tres variables distintas en una sola línea.
  3. Intercambia los valores de dos variables sin usar una variable temporal.
  4. Usa el operador += para incrementar un contador tres veces seguidas.
  5. Crea una lista, asígnala a dos variables distintas, modifica una con .append() y observa el efecto en la otra.
  6. Declara una constante MAX_USUARIOS y dos variables normales, respetando la convención de nombres de cada una.
✍️ Resuelve aquí los ejercicios

Reto Final

Desarrolla un programa que declare estas variables:

  • nombre_cliente y precio_unitario, creadas en una sola línea con asignación múltiple.
  • cantidad (un número entero).

El programa deberá:

  • Calcular el total multiplicando precio_unitario por cantidad.
  • Aplicar un descuento del 10% sobre el total usando el operador -=.
  • Mostrar un resumen con un f-String, con el total final formateado a dos decimales.
Salida esperada
Cliente: Ana López
Total con descuento: $80.91

Cheat Sheet

UsoEjemplo
Crear variablenombre = "Ana"
Reasignarnombre = "Roy"
Incrementarcontador += 1
Asignación múltiplea, b, c = 1, 2, 3
Intercambiar valoresa, b = b, a
Constante (convención)MAX_INTENTOS = 3
Comparar identidada is b
Ver dirección en memoriaid(a)

¿Sabías que...?

🔢 Python cachea enteros pequeños

CPython guarda en caché los enteros entre -5 y 256: dos variables con ese mismo valor pequeño pueden compartir el mismo objeto en memoria, y por eso x is y a veces da True sin que lo esperes.

🐫 camelCase no es "pythónico"

La guía de estilo oficial PEP 8 recomienda snake_case para variables; camelCase es mucho más común en Java y JavaScript.

🔒 Python no tiene constantes reales

A diferencia de lenguajes con const o final, en Python cualquier variable —incluidas las "constantes" en mayúsculas— puede reasignarse. El respeto a esa convención es solo cultura de equipo.