Variables y asignación de valores
Introducción
Las variables son uno de los conceptos fundamentales en cualquier lenguaje de programación. En Python, una variable es un nombre que hace referencia a un valor almacenado en la memoria del ordenador. Podemos imaginar las variables como cajas etiquetadas donde guardamos datos para usarlos posteriormente en nuestro programa. La asignación de valores es el proceso mediante el cual damos un valor a una variable. Python maneja las variables de forma flexible y dinámica, lo que facilita el desarrollo pero también requiere entender cómo funciona el sistema de variables para evitar errores comunes. En este artículo, exploraremos cómo crear variables, asignarles valores y algunas características específicas de las variables en Python.
Creación y asignación de variables
En Python, crear una variable es tan sencillo como asignarle un valor. A diferencia de otros lenguajes, no es necesario declarar el tipo de datos previamente.
Sintaxis básica
nombre_variable = valor
El operador =
es el operador de asignación. Coloca un valor en el lado derecho y le asigna ese valor a la variable del lado izquierdo.
# Ejemplos de asignación de variables
edad = 25
nombre = "Laura"
precio = 19.99
es_estudiante = True
Nombres válidos para variables
En Python, los nombres de variables deben seguir estas reglas:
- Deben comenzar con una letra (a-z, A-Z) o un guion bajo (_)
- Pueden contener letras, números y guiones bajos
- No pueden contener espacios ni caracteres especiales como @, $, %
- Son sensibles a mayúsculas y minúsculas (edad y Edad son variables diferentes)
- No pueden ser palabras reservadas de Python (como
if
,for
,while
, etc.)
# Nombres válidos
nombre = "Carlos"
edad_usuario = 30
_variable_interna = 100
valor1 = 50
# Nombres no válidos
# 1valor = 10 # No puede comenzar con número
# mi-variable = 20 # No puede contener guiones
# break = 30 # No puede ser una palabra reservada
Asignación múltiple
Python permite asignar valores a múltiples variables en una sola línea.
Asignación de un mismo valor a varias variables
x = y = z = 10 # Las tres variables tendrán el valor 10
Asignación de valores diferentes a varias variables
a, b, c = 5, 10, 15 # a=5, b=10, c=15
Intercambio de valores
En muchos lenguajes, intercambiar valores entre variables requiere una variable temporal. En Python, se puede hacer directamente:
a, b = 5, 10
print(a, b) # Muestra: 5 10
# Intercambio de valores
a, b = b, a
print(a, b) # Muestra: 10 5
Características de las variables en Python
Tipado dinámico
Python utiliza tipado dinámico, lo que significa que una variable puede cambiar de tipo durante la ejecución del programa.
x = 10 # x es un entero
print(type(x)) # Muestra: <class 'int'>
x = "Hola" # Ahora x es una cadena
print(type(x)) # Muestra: <class 'str'>
La función type()
nos permite conocer el tipo de dato de una variable.
Variables como referencias
En Python, las variables son referencias a objetos en memoria. Esto es importante entenderlo, especialmente cuando trabajamos con tipos de datos mutables como listas.
# Ejemplo con tipo inmutable (entero)
a = 5
b = a # b ahora es 5
a = 10 # a cambia a 10
print(a, b) # Muestra: 10 5
# Ejemplo con tipo mutable (lista)
lista1 = [1, 2, 3]
lista2 = lista1 # lista2 referencia a la misma lista que lista1
lista1.append(4) # Modificamos lista1
print(lista1) # Muestra: [1, 2, 3, 4]
print(lista2) # Muestra: [1, 2, 3, 4] (también se modifica)
Variables y memoria
Cada vez que creamos una variable, Python reserva un espacio en memoria para almacenar su valor. Podemos usar la función id()
para ver la dirección de memoria de un objeto.
x = 10
print(id(x)) # Muestra algo como: 140737488344112
y = 10
print(id(y)) # Muestra el mismo número que x, pues Python reutiliza algunos objetos inmutables
Convenciones de nomenclatura
Aunque ya vimos las reglas técnicas para nombrar variables, en la práctica se siguen ciertas convenciones para mejorar la legibilidad del código:
Snake Case para variables y funciones
En Python, se usa generalmente snake_case (palabras separadas por guiones bajos) para nombres de variables y funciones:
nombre_completo = "Ana García"
precio_total = 250.99
calcular_promedio = lambda x, y: (x + y) / 2
Variables constantes
Las constantes como tal no existen en Python. Aun así, por convención, las constantes (valores que no deberían cambiar) se escriben en mayúsculas:
PI = 3.14159
VELOCIDAD_LUZ = 299792458
DIAS_SEMANA = 7
Está en ti respetar una variable completamente en mayúsculas y no modificar su valor.
Variables privadas
Por convención, las variables que comienzan con guion bajo se consideran "privadas":
_contador_interno = 0 # Variable para uso interno, sugiere no modificarla directamente
Verificación y eliminación de variables
Verificar si una variable existe
Podemos usar la instrucción in
junto con la función locals()
o globals()
:
if 'x' in locals():
print("La variable x existe en el ámbito local")
También podemos usar la función dir()
para ver todas las variables disponibles:
print(dir()) # Muestra todos los nombres disponibles en el ámbito actual
Eliminar variables
La instrucción del
permite eliminar una variable:
x = 10
print(x) # Muestra: 10
del x
# print(x) # Esto daría un error: NameError: name 'x' is not defined
Ámbito de las variables
El ámbito de una variable define dónde es accesible. Python tiene diferentes niveles de ámbito:
Ámbito local
Variables definidas dentro de una función:
def funcion():
x = 10 # Variable local
print(x)
funcion() # Muestra: 10
# print(x) # Error: x no existe fuera de la función
Ámbito global
Variables definidas en el cuerpo principal del programa:
y = 20 # Variable global
def funcion():
print(y) # Accede a la variable global
funcion() # Muestra: 20
Modificar variables globales desde funciones
Necesitamos usar la palabra clave global
:
contador = 0 # Variable global
def incrementar():
global contador # Indicamos que usaremos la variable global
contador += 1
print(contador)
incrementar() # Muestra: 1
incrementar() # Muestra: 2
Resumen
Las variables en Python son referencias a objetos almacenados en memoria que nos permiten guardar y manipular datos durante la ejecución de nuestro programa. La asignación de valores es sencilla y flexible, lo que facilita el desarrollo rápido de aplicaciones. Python utiliza tipado dinámico, lo que significa que las variables pueden cambiar de tipo durante la ejecución. Además, ofrece características como la asignación múltiple y el intercambio de valores que simplifican ciertas operaciones. Siguiendo las convenciones de nomenclatura como snake_case, mejoraremos la legibilidad de nuestro código. En el próximo tema, exploraremos los tipos de datos básicos de Python, profundizando en cómo trabajar con números, cadenas y booleanos.