Volver al Menú de Temas

Operadores Lógicos, de Pertenencia e Identidad en Python

Diferencias entre operadores, ejemplos prácticos y explicación del funcionamiento interno.


Operadores Lógicos, de Pertenencia e Identidad en Python

Cuando aprendemos Python después de haber trabajado con lenguajes como Java, una de las primeras diferencias que notamos es que Python busca que el código sea más cercano al lenguaje humano.

En Java normalmente escribimos:

if (edad >= 18 && tieneLicencia) {
    System.out.println("Puede conducir");
}

En Python la misma idea se expresa así:

if edad >= 18 and tiene_licencia:
    print("Puede conducir")

Python reemplaza símbolos como &&, || y ! por palabras como and, or y not. Esto hace que las condiciones sean más fáciles de leer.


1. Operadores Lógicos

Los operadores lógicos sirven para combinar varias condiciones dentro de estructuras como:

Los principales operadores son:

PythonJavaSignificado
and&&Y lógico
or`
not!Negación

Operador and

Equivalente en Java

&&

and significa que todas las condiciones deben cumplirse.

Ejemplo:

usuario = "admin"
password = "12345"

if usuario == "admin" and password == "12345":
    print("Acceso permitido")
else:
    print("Datos incorrectos")

La condición completa solamente será verdadera si:

Si una sola falla, el resultado será False.


Tabla de verdad de and

Condición ACondición BResultado
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

Operador or

Equivalente en Java

||

or permite ejecutar una acción cuando al menos una condición es verdadera.

Ejemplo:

boton_emergencia = False
temperatura = 110

if boton_emergencia or temperatura > 100:
    print("Apagando sistema")

Aquí no importa cuál condición ocurrió. Si una de ellas es verdadera, el sistema actúa.


Tabla de verdad de or

Condición ACondición BResultado
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Operador not

Equivalente en Java

!

not invierte un valor booleano.

Ejemplo:

sensor_calibrado = False

if not sensor_calibrado:
    print("El sensor necesita calibración")

Es equivalente a decir:

“Si el sensor NO está calibrado”.


2. Operadores de Pertenencia

Python tiene operadores especiales para preguntar si un elemento existe dentro de una colección.

Estos son:

OperadorSignificado
inExiste dentro de
not inNo existe dentro de

Funcionan con:


Operador in

Ejemplo con listas:

usuarios = ["ana", "juan", "maria"]

if "juan" in usuarios:
    print("Usuario encontrado")

Python revisa internamente si el elemento existe.


Ejemplo con texto:

mensaje = "Bienvenido al sistema"

if "sistema" in mensaje:
    print("La palabra existe")

Operador not in

Es la negación de in.

Ejemplo:

bloqueados = ["usuario1", "usuario2"]

usuario = "nuevo_usuario"

if usuario not in bloqueados:
    print("Usuario permitido")

Se lee como:

“Si el usuario NO está dentro de la lista de bloqueados”.


3. Operadores de Identidad

Python también posee:

Estos operadores suelen confundirse con:

==

pero tienen una diferencia importante.


Igualdad ==

Pregunta:

¿Los valores son iguales?

Ejemplo:

a = [1,2,3]
b = [1,2,3]

print(a == b)

Resultado:

True

Porque tienen el mismo contenido.


Identidad is

Pregunta:

¿Son exactamente el mismo objeto en memoria?

Ejemplo:

lista_a = [1,2,3]
lista_b = [1,2,3]

lista_c = lista_a

print(lista_a is lista_b)
print(lista_a is lista_c)

Resultado:

False
True

Aunque lista_a y lista_b tienen los mismos datos, son objetos diferentes.


Analogía

Imagina dos autos:

Auto A: - Toyota Corolla - Color rojo

Auto B: - Toyota Corolla - Color rojo

Son iguales:

Auto A == Auto B

Pero no son el mismo vehículo:

Auto A is Auto B

sería falso.


Uso recomendado

En programación diaria:

Usa:

==

para comparar valores.

Ejemplo:

nombre == "Carlos"

Usa:

is

principalmente para comprobar valores especiales como:

dato is None

Ejemplo:

resultado = None

if resultado is None:
    print("No hay información")

Resumen final

OperadorUso
andTodas las condiciones deben cumplirse
orAl menos una condición debe cumplirse
notInvierte un valor booleano
inBusca elementos dentro de colecciones
not inVerifica que algo no exista
==Compara valores
isCompara identidad del objeto

La filosofía de Python es escribir código que sea fácil de leer. Por eso muchos operadores utilizan palabras en lugar de símbolos.