Saltar a contenido

Operadores de Identidad y Pertenencia

En Python, existen dos familias de operadores que nos permiten ir más allá de los valores y explorar la estructura de los datos: la Identidad (¿son el mismo objeto?) y la Pertenencia (¿está este dato dentro de aquel otro?).


Operadores de Identidad (is, is not)

A menudo confundimos "ser igual" con "ser el mismo". En Python, dos variables pueden tener el mismo valor pero vivir en lugares distintos de la memoria.

  • is: Devuelve True si ambas variables apuntan al mismo objeto exacto en la memoria RAM.
  • is not: Devuelve True si las variables apuntan a objetos diferentes.

La diferencia con ==

  • == compara Valores (¿tienen lo mismo?).
  • is compara Identidades (¿son lo mismo?).

Dato Técnico: El operador is se utiliza frecuentemente para comparar variables con el valor nulo None, ya que None es un objeto único en Python. Ejemplo: if variable is None:.


Operadores de Pertenencia (in, not in)

Estos operadores se utilizan para verificar si un valor se encuentra dentro de una secuencia (como un texto, una lista o una tupla). Son extremadamente potentes por su legibilidad casi humana.

  • in: Devuelve True si el valor especificado está presente en la secuencia.
  • not in: Devuelve True si el valor no está presente.

Ejemplo en Texto (Strings):

Si tienes el texto "Python es genial", puedes preguntar: * 'Python' in "Python es genial" -> True * 'Java' in "Python es genial" -> False


Reto: El Filtro de Seguridad

Vamos a simular un sistema que verifica si un correo electrónico pertenece a un dominio prohibido y si una sesión es válida.

Instrucciones: 1. Crea la variable correo con el valor 'usuario@spam.com'. 2. Crea la variable es_spam usando el operador in para verificar si la palabra 'spam' está dentro de correo. 3. Crea la variable sesion_actual con el valor None. 4. Crea la variable sin_sesion usando el operador is para verificar si sesion_actual es None. 5. Crea la variable lista_permitida con el texto 'admin, editor, profesor'. 6. Crea la variable es_invitado usando not in para verificar si el texto 'invitado' no está en lista_permitida.

# Verifica identidad y pertenencia: