Operadores de comparación y lógicos
En la lección anterior vimos que las comparaciones producen booleanos. Aquí veremos todos los operadores disponibles, porque son la base de cualquier condición que escribas.
Operadores de comparación
Comparan dos valores y devuelven True o False:
| Operador | Significado | Ejemplo | Resultado |
|---|---|---|---|
== | igual a | 5 == 5 | True |
!= | distinto de | 5 != 3 | True |
> | mayor que | 7 > 3 | True |
< | menor que | 2 < 1 | False |
>= | mayor o igual que | 5 >= 5 | True |
<= | menor o igual que | 4 <= 3 | False |
>>> edad = 18
>>> edad >= 18
True
>>> edad == 17
False
>>> nombre = "Ana"
>>> nombre == "ana" # las comparaciones de strings distinguen mayúsculas
False
Nota: No confundas == (comparación) con = (asignación). edad = 18 guarda el valor; edad == 18 pregunta si son iguales. Es uno de los errores más frecuentes al empezar.
Operadores lógicos
Combinan varias comparaciones en una sola expresión:
| Operador | Devuelve True cuando... |
|---|---|
and | las dos condiciones son verdaderas |
or | al menos una condición es verdadera |
not | la condición es falsa (invierte el resultado) |
>>> edad = 20
>>> tiene_entrada = True
>>> edad >= 18 and tiene_entrada # las dos se cumplen
True
>>> edad >= 18 and not tiene_entrada
False
>>> edad < 18 or tiene_entrada # al menos una se cumple
True
>>> not tiene_entrada
False
Puedes encadenar todo lo que necesites, pero usa paréntesis para dejar clara la intención cuando la expresión se complica:
>>> (edad >= 18 and tiene_entrada) or edad == 0
True
El operador in
El operador in comprueba si un valor está contenido dentro de otro. Con strings, es la forma más legible de buscar una subcadena:
>>> frase = "el café está listo"
>>> "café" in frase
True
>>> "té" in frase
False
>>> "café" not in frase
False
Lo verás constantemente también con listas y diccionarios, que cubriremos más adelante. La forma de leerlo en voz alta es exactamente lo que hace: "¿está 'café' en frase?".
Nota: in distingue mayúsculas y minúsculas, igual que las comparaciones con ==. "Café" in frase devolvería False.
Encadenamiento de comparaciones
Python permite encadenar operadores de comparación de forma natural, como en notación matemática:
>>> edad = 25
>>> 18 <= edad <= 30
True
>>> 18 <= edad <= 30 and edad != 25
False
Esto equivale a edad >= 18 and edad <= 30, pero es más corto y más fácil de leer. Pocos lenguajes permiten esto: en la mayoría tendrías que escribir las dos condiciones con and.
Comparar con None
Para comprobar si una variable es None, la convención en Python es usar is en lugar de ==:
>>> resultado = None
>>> resultado is None
True
>>> resultado is not None
False
is comprueba que dos variables son exactamente el mismo objeto en memoria, no solo que sean iguales. Con None funciona perfectamente porque solo existe un None en todo Python. Verás este patrón constantemente en código real.
En la próxima lección: condicionales: if, elif y else para que el programa tome decisiones.