QuieroProgramar por Rodri Gonzalez
Python · Lección 04 de 27

Variables y constantes

Las variables son el mecanismo fundamental para guardar, reutilizar y transformar datos en cualquier programa. Cómo las nombres y organices define si tu código es profesional o un desastre inmantenible.

70–90 min Prerrequisitos: 03 Tipos de datos
01

Concepto teórico

¿Qué es una variable?

Una variable es un nombre que le asignás a un valor para poder usarlo después. Internamente, Python crea un objeto en memoria con el valor y hace que el nombre "apunte" a ese objeto. Cuando escribís edad = 28, Python reserva espacio para el número 28 y asocia el nombre edad a esa ubicación de memoria.

A diferencia de lenguajes como Java o C++ donde declarás el tipo explícitamente (int edad = 28;), Python usa tipado dinámico: el tipo se infiere automáticamente del valor que asignás. Esto significa que la misma variable puede cambiar de tipo durante la ejecución del programa:

x = 42          # x es int
x = "cuarenta"  # ahora x es str — Python no se queja
x = [1, 2, 3]   # ahora x es list — sigue sin quejarse
Analogía: las cajas con etiquetas. Imaginá un depósito con cajas. Cada caja tiene una etiqueta (el nombre de la variable) y adentro guardás algo (el valor). Podés abrir la caja y cambiar el contenido (reasignar), podés leer lo que tiene (usar la variable), o podés pegarle una etiqueta nueva a otra caja. Lo importante es que la etiqueta sea descriptiva: una caja que dice "saldo_cuenta" es mucho más útil que una que dice "x".

Crear y reasignar variables

Crear una variable es simplísimo: nombre = valor. El signo = es el operador de asignación — NO significa "es igual a" (eso es ==). Significa "guardá este valor con este nombre".

Python ofrece algunas formas avanzadas de asignación que son muy útiles:

Reglas de naming (obligatorias)

Python tiene reglas estrictas sobre qué nombres son válidos:

Regla Válido Inválido Por qué
Solo letras, números y _ saldo_1 saldo-1, saldo.1 Guión y punto son operadores
Debe empezar con letra o _ _temp, edad 1er_nombre Empezar con número es inválido
Case-sensitive EdadedadEDAD Son 3 variables distintas
No usar palabras reservadas mi_clase class, if, for Son palabras del lenguaje

Convenciones de estilo (PEP 8)

Además de las reglas obligatorias, Python tiene convenciones de estilo que todo programador profesional sigue. Están documentadas en PEP 8 (Python Enhancement Proposal #8):

Error común: usar nombres genéricos. Variables como x, data, temp, valor no dicen nada. ¿x es un precio, un score, una edad? Nadie lo sabe sin leer todo el contexto. Usá nombres descriptivos: precio_unitario, score_crediticio, edad_cliente. Tu yo de dentro de 3 meses te lo va a agradecer.

Constantes (por convención)

Python no tiene constantes reales. A diferencia de JavaScript (const) o Java (final), no hay forma de forzar que una variable no cambie. La convención es escribirla en MAYÚSCULAS para indicar que no debería modificarse. Es un acuerdo entre programadores, no una restricción del lenguaje.

Las constantes se usan para valores que definen la configuración de tu programa y no deberían cambiar durante la ejecución: tasas impositivas, límites, URLs de APIs, claves de configuración.

Tip profesional: poné todas las constantes al inicio del archivo, después de los imports. Así cualquier persona que lea tu código sabe inmediatamente qué parámetros usa y puede ajustarlos sin buscar en todo el programa. Esto es estándar en cualquier equipo profesional.

f-strings: formateo moderno de texto

Los f-strings (format strings) son la forma moderna y preferida de incluir variables dentro de texto. Se escriben con una f antes de las comillas y las variables van entre llaves {}:

print(f"Hola, {nombre}. Tenés {edad} años.")

Dentro de las llaves podés poner cualquier expresión de Python, incluyendo cálculos, llamadas a funciones y formatos especiales:

En análisis de datos: el formato :,.2f (separador de miles + 2 decimales) lo vas a usar en CADA reporte. ${saldo:,.2f} muestra $1,234,567.89 en vez de $1234567.89. Esa diferencia es la que hace que tu reporte parezca profesional o amateur.
02

Ejemplos explicados paso a paso

Ejemplo 1: Crear, reasignar y verificar tipos

Fijate cómo Python permite cambiar el tipo de una variable sin quejarse. Esto es el tipado dinámico en acción.

ejemplo_01_variables.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 2: Asignación múltiple, swap y desempaquetado

Python tiene formas elegantes de asignar valores que en otros lenguajes requerirían varias líneas.

ejemplo_02_asignacion.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 3: Constantes y configuración profesional

Así se estructura un archivo Python profesional: constantes arriba, lógica abajo. Cualquiera puede ajustar los parámetros sin buscar en el código.

ejemplo_03_constantes.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 4: f-strings avanzados — formato de números

Dominá el formato de números en f-strings. Esto es lo que hace que tus reportes se vean profesionales.

ejemplo_04_fstrings.pyPython

        
Hacé clic en ▶ Ejecutar

Ejemplo 5: Nombres buenos vs malos — el impacto en código real

Compará dos versiones del mismo programa. El de la izquierda es ilegible; el de la derecha se explica solo.

ejemplo_05_naming.pyPython

        
Hacé clic en ▶ Ejecutar
03

Referencia rápida

Operación Sintaxis Ejemplo
Crear variable nombre = valor edad = 28
Reasignar nombre = nuevo_valor edad = 29
Asignación múltiple a, b, c = v1, v2, v3 x, y = 10, 20
Swap a, b = b, a Intercambia valores
Desempaquetado a, b = lista nombre, edad = ["Ana", 25]
Verificar tipo type(variable) type(edad).__name__
Convención Estilo Ejemplo Uso
Variables/funciones snake_case saldo_cuenta Todo el código general
Constantes UPPER_SNAKE_CASE IVA, DOLAR_MEP Valores que no cambian
Clases PascalCase CuentaBancaria Definiciones de clases
Privadas _prefijo _cache Uso interno
Formato f-string Ejemplo Resultado
:,.2f f"${1234.5:,.2f}" $1,234.50
:.1% f"{0.153:.1%}" 15.3%
:>12 f"{'hola':>12}" hola
:<12 f"{'hola':<12}" hola
:05d f"{42:05d}" 00042
04

Ejercicios

Nivel 1 · Básico

Ejercicio 1: Crear e imprimir variables

Creá variables nombre, edad y ciudad con tus datos e imprimilas usando f-string en una sola línea. Debe incluir años.

ejercicio_01.pyDebe incluir "años"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 2: Reasignación

Creá saldo = 100000. Imprimilo. Reasignalo a 150000. Imprimilo de nuevo. Debe incluir 150000.

ejercicio_02.pyDebe incluir "150000"

          
Hacé clic en ▶ Ejecutar
Nivel 1 · Básico

Ejercicio 3: Asignación múltiple y swap

Asigná a = "primero" y b = "segundo" en una línea. Intercambialos con swap e imprimí ambos. Debe incluir a = segundo.

ejercicio_03.pyDebe incluir "a = segundo"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 4: Sueldo neto con constantes

Definí constantes JUBILACION = 0.11 y GANANCIAS = 0.17. Con sueldo_bruto = 750000, calculá e imprimí el neto. Debe incluir 540000.

ejercicio_04.pyDebe incluir "540000"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 5: Formateo de moneda

Dado monto = 2345678.5, imprimilo con formato de moneda argentina: $2,345,678.50. Debe incluir $2,345,678.50.

ejercicio_05.pyDebe incluir "$2,345,678.50"

          
Hacé clic en ▶ Ejecutar
Nivel 2 · Intermedio

Ejercicio 6: Desempaquetado de datos

Tenés datos = ["Fernández", 30, "Mendoza", 710, 280000]. Desempaquetá en variables con nombres descriptivos e imprimí un resumen. Debe incluir Score: 710.

ejercicio_06.pyDebe incluir "Score: 710"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 7: Tabla formateada con f-strings

Imprimí esta tabla alineada usando f-strings con :<20 y :>10. Debe incluir Total.

Concepto              Monto
──────────────────────────────
Sueldo               $450,000
Alquiler             -$85,000
Servicios            -$32,000
──────────────────────────────
Total                $333,000
ejercicio_07.pyDebe incluir "Total"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 8: Conversión de moneda con constantes

Definí DOLAR_OFICIAL = 1150 y DOLAR_MEP = 1280. Dado ahorro_usd = 3500, imprimí cuánto es en pesos con cada tipo de cambio y la diferencia (brecha). Debe incluir Brecha.

ejercicio_08.pyDebe incluir "Brecha"

          
Hacé clic en ▶ Ejecutar
Nivel 3 · Avanzado

Ejercicio 9: Generador de IDs con padding

Generá 5 IDs de factura con formato FAC-2025-00001 a FAC-2025-00005. Usá un for con range y f-string con :05d. Debe incluir FAC-2025-00003.

ejercicio_09.pyDebe incluir "FAC-2025-00003"

          
Hacé clic en ▶ Ejecutar
Nivel 4 · Desafío

Ejercicio 10: Recibo de sueldo completo con formato profesional

Construí un recibo de sueldo formateado. Bruto: $1,200,000. Deducciones: jubilación 11%, obra social 3%, ganancias 17%. Calculá cada deducción, el total de deducciones y el neto. Imprimí todo con alineación y formato de moneda. Debe incluir Neto: y 828,000.

ejercicio_10_desafio.pyDebe incluir "828,000"

          
Hacé clic en ▶ Ejecutar
05

Resumen y conexión

En la siguiente lección (05 · Operaciones básicas) vas a aprender a usar operadores aritméticos, de comparación y lógicos para calcular, comparar y tomar decisiones con los datos que acabás de aprender a guardar en variables.

Recursos: PEP 8 — Style Guide · Python docs — f-strings