Es evidente que Python te permite codificar literales con valores numéricos y de texto, y ya has aprendido a realizar operaciones aritméticas con ellos. Sin embargo, en cualquier desarrollo real surge una pregunta inevitable: ¿Cómo guardamos los resultados de esas operaciones para usarlos en cálculos posteriores?
Si no tuviéramos una forma de almacenar esos resultados intermedios, tendríamos que escribir expresiones infinitas y redundantes. Para resolver esto, Python nos ofrece “cajas” o contenedores especiales llamados variables. El nombre mismo lo dice todo: el contenido de estos contenedores puede variar en casi cualquier momento del programa.
Toda variable en Python consta obligatoriamente de dos elementos esenciales:
- Un nombre: El identificador único que usas para llamar a la caja.
- Un valor: El contenido o dato que está guardado dentro de la caja.
Las variables no aparecen de la nada de forma automática. Como desarrollador, tú debes decidir cuántas variables necesitas y qué nombres estratégicos les vas a asignar.
Reglas Estrictas para Nombrar Variables
Para que el intérprete de Python acepte el nombre de una variable sin arrojar un SyntaxError, debes seguir estas cinco reglas obligatorias:
1. Caracteres permitidos
El nombre solo puede estar compuesto por letras mayúsculas o minúsculas (de la A a la Z), dígitos (del 0 al 9) y el carácter de guion bajo o underscore (_). No se permiten espacios, eñes, acentos ni símbolos especiales ($, @, -, etc.).
2. El primer carácter es clave
El nombre de una variable debe comenzar obligatoriamente con una letra o con un guion bajo (_). Jamás puede empezar con un número.
mi_variable_1➔ Válido_contador➔ Válido1_variable➔ Inválido (Provoca error por empezar con dígito).
3. El guion bajo es considerado una letra
Para efectos sintácticos, Python trata al carácter _ con el mismo estatus que una letra. Puedes usarlo al inicio o entre palabras para mejorar la legibilidad (estilo conocido como snake_case).
4. Sensibilidad a mayúsculas y minúsculas (Case-Sensitivity)
En el mundo real, “Pedro” y “pedro” representan el mismo nombre propio. En Python no es así. Las mayúsculas y minúsculas crean variables completamente distintas.
- Si en tu código escribes
Alice = 10y luego intentas llamarla comoprint(alice), Python arrojará un error porqueAliceyaliceson dos cajas diferentes en la memoria.
5. Prohibido usar palabras reservadas (Keywords)
El nombre de la variable no puede coincidir con ninguna de las palabras clave que Python ya utiliza para sus propias funciones internas o estructuras de control (como True, False, print, None, etc.).
Aquí tienes la adaptación de esta sección fundamental sobre la creación y asignación dinámicas de variables. Aquí es donde Python demuestra por qué es un lenguaje tan ágil en comparación con alternativas más rígidas como C++ o Java.
Creación de Variables y el Operador de Asignación (=)
¿Qué puedes meter dentro de una variable? Lo que sea. Puedes utilizar una variable para almacenar cualquier tipo de dato de los que ya hemos estudiado (enteros, flotantes, cadenas, booleanos o None) y muchos otros tipos avanzados que analizaremos más adelante. El valor de una variable es, literalmente, el dato que decides depositar en ella. Y, haciendo honor a su nombre, puede cambiar tantas veces como quieras: puede ser un entero en un instante, transformarse en un flotante un segundo después y terminar convertida en una cadena de texto.
El Milagro de la Asignación Dinámica
- En Python, una variable nace y cobra existencia en el instante exacto en el que le asignas un valor por primera vez.
A diferencia de otros lenguajes tradicionales de programación, en Python no necesitas declarar la variable de forma previa (no tienes que avisarle al sistema “Oye, voy a crear una caja para guardar un entero”). Si intentas inyectar un dato dentro de una variable que no existía, Python la creará automáticamente tras bambalinas. No requieres de ninguna configuración extra.
La sintaxis para dar vida a una variable es extraordinariamente sencilla: escribes el nombre que has elegido, colocas el signo de igual (=) y finalmente escribes el valor o expresión que deseas almacenar.
El Operador de Asignación en Acción
var = 1
print(var)Este script ejecuta dos instrucciones secuenciales muy claras:
var = 1: El signo=aquí no significa “igualdad matemática”, sino asignación. Toma el literal entero1de la derecha y lo deposita dentro de la variable llamadavar. Comovarno existía en la memoria, Python la crea en ese mismo milisegundo.print(var): Aquí descubrimos otra faceta imprescindible de la funciónprint(). No solo procesa textos o cálculos directos; también puede recibir variables como argumentos.
Resumen de Control
- Las variables se crean automáticamente al recibir su primer valor.
- El signo
=es el operador de asignación (mueve los datos de derecha a izquierda). print(variable)muestra el contenido de la caja;print("variable")muestra el nombre textual de la caja.
Aquí tienes la adaptación de la sección sobre el uso práctico de variables. Aquí analizaremos cómo manipular múltiples contenedores a la vez, el peligro de llamar a variables inexistentes y una técnica muy útil para el examen: la concatenación de texto con variables.
Combinando Texto y Variables: La Concatenación
Una de las operaciones más comunes en programación es fusionar cadenas de texto estáticas con los valores almacenados dentro de nuestras variables.
var = "3.8.5"
print("Python version: " + var)Cuando el operador + se coloca entre dos datos de tipo cadena de texto (str), su función cambia por completo: ya no realiza una suma aritmética, sino que ejecuta una concatenación (une los textos uno detrás del otro como si fueran vagones de un tren).
Python version: 3.8.5- Advertencia : La concatenación con el signo
+solo funciona si ambos lados son cadenas de texto (str). Si intentas hacer"Edad: " + 25(un texto más un entero), Python arrojará un error de tipo (TypeError). Para que funcione con números usando el signo+, el número tendría que estar entre comillas ("25").
Aquí tienes la adaptación de esta sección fundamental sobre la reasignación de variables. Aquí analizaremos cómo una variable puede cambiar su contenido a lo largo del tiempo y cómo resolver esa clásica línea de código (var = var + 1) que suele escandalizar a los matemáticos pero que es el pan de cada día en la programación.
Reasignación de Variables y el Secreto de var = var + 1
¿Cómo se le asigna un nuevo valor a una variable que ya ha sido creada? Exactamente de la misma manera: volviendo a utilizar el signo de igual (=).
Como ya hemos mencionado, el signo de igual no representa una igualdad matemática, sino que es el operador de asignación. Su mecánica es directa y libre de ambigüedades: toma el valor o el resultado del argumento de la derecha y lo deposita en la variable de la izquierda. El argumento de la derecha puede ser desde un literal simple hasta una expresión arbitrariamente compleja llena de operadores, otras variables y cálculos.
var = 1
print(var)
var = var + 1
print(var)Al ejecutar este script, la consola proyectará dos líneas:
1
2En efecto, lo que hemos hecho es incrementar el valor de la variable en uno. No estamos comparando nada, estamos destruyendo el pasado de la variable para actualizarla con su nuevo presente.
Resumen de Control
- Las variables solo pueden guardar un valor a la vez. Cada nueva asignación destruye el valor anterior.
- En instrucciones como
var = var + 1, Python siempre resuelve primero el cálculo matemático del extremo derecho usando los valores actuales antes de modificar la variable de la izquierda.
Operadores de Asignación Compuesta (Shortcut Operators)
En la programación real, es extremadamente común querer usar una misma variable tanto a la izquierda como a la derecha del operador de asignación =. Por ejemplo, si estás calculando una serie de potencias sucesivas de 2, escribirías algo como esto:
x = x * 2Python ofrece una forma abreviada y elegante de escribir exactamente estas mismas operaciones, ahorrándote repetir el nombre de la variable:
x *= 2
sheep += 1La Regla General de Simplificación (Enfoque PCEP)
Podemos definir una regla matemática y sintáctica universal para estas abreviaciones. Si llamamos op a cualquier operador binario (es decir, que requiere obligatoriamente dos argumentos), y dicho operador se usa en el siguiente contexto:
$$\text{variable} = \text{variable} \quad \text{op} \quad \text{expresión}$$
Python te permite simplificarlo y compactarlo de la siguiente manera:
$$\text{variable} \quad \text{op}= \text{expresión}$$
Ejemplos de Equivalencias para Estudiar
Analiza detenidamente la siguiente tabla de equivalencias. En el examen de certificación PCEP es muy común que te pidan “traducir” una forma larga a una corta o viceversa:
| Forma Tradicional (Larga) | Forma Compacta (Shortcut) | Operación Ejecutada |
i = i + 2 * j | i += 2 * j | Suma combinada |
var = var / 2 | var /= 2 | División (Resultado float) |
rem = rem % 10 | rem %= 10 | Residuo o Módulo |
j = j - (i + var + rem) | j -= (i + var + rem) | Resta de una subexpresión |
x = x ** 2 | x **= 2 | Exponenciación o Potencia |
La Gran Trampa de Prioridad en los Shortcuts
Cuando usas un operador compuesto como += o *=, toda la expresión que se encuentra a la derecha del signo se calcula PRIMERO, como si estuviera metida dentro de un paréntesis imaginario, sin importar qué operadores tenga.
x = 2
x *= 3 + 5- Comportamiento real de Python: Primero se resuelve toda la derecha:
3 + 5 = 8. Después se aplica el shortcut:x = x * 8\(\rightarrow\)2 * 8. El resultado final en la consola será16.
Resumen
- Los shortcut operators (
+=,-=,*=,/=,//=,%=,=) fusionan la operación matemática con la asignación. - El operando de la derecha se evalúa por completo antes de que el operador compuesto actúe.