Diferencias entre operadores, ejemplos prácticos y explicación del funcionamiento interno.
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.
Los operadores lógicos sirven para combinar varias condiciones dentro de estructuras como:
ifwhile| Python | Java | Significado |
|---|---|---|
and | && | Y lógico |
or | ` | |
not | ! | Negación |
and&&
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.
and| Condición A | Condición B | Resultado |
|---|---|---|
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
or||
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.
or| Condición A | Condición B | Resultado |
|---|---|---|
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
not!
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”.
Python tiene operadores especiales para preguntar si un elemento existe dentro de una colección.
Estos son:
| Operador | Significado |
|---|---|
in | Existe dentro de |
not in | No existe dentro de |
Funcionan con:
inEjemplo 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")
not inEs 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”.
Python también posee:
isis notEstos operadores suelen confundirse con:
==
pero tienen una diferencia importante.
==Pregunta:
¿Los valores son iguales?
Ejemplo:
a = [1,2,3]
b = [1,2,3]
print(a == b)
Resultado:
True
Porque tienen el mismo contenido.
isPregunta:
¿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.
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.
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")
| Operador | Uso |
|---|---|
and | Todas las condiciones deben cumplirse |
or | Al menos una condición debe cumplirse |
not | Invierte un valor booleano |
in | Busca elementos dentro de colecciones |
not in | Verifica que algo no exista |
== | Compara valores |
is | Compara 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.