Ir al contenido principal

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.