2.3. Operaciones lógicas#
En este tema aprenderás a utilizar operadores lógicos en Python para construir expresiones que devuelven valores booleanos, lo cual es fundamental para el control del flujo en programas.
2.3.1. ¿Qué es una operación lógica?#
Una operación lógica evalúa si una o más condiciones son verdaderas (True) o falsas (False). El resultado siempre será un valor booleano.
En un flujograma simboliza una encrucijada:
flowchart TD
A[Comprar objeto] --> B{¿Suficiente Dinero?}
B -- Verdadero --> C[Comprar]
B -- Falso --> D[Buscar otra opción]
D --> E[Siguiente Opción] --> B
2.3.2. Operadores lógicos#
2.3.2.1. and#
Devuelve True solo si ambas condiciones son verdaderas.
True and True # True
True and False # False
2.3.2.2. or#
Devuelve True si al menos una de las condiciones es verdadera.
False or True # True
False or False # False
2.3.2.3. not#
Invierte el valor lógico de una condición.
not True # False
not False # True
2.3.3. Tablas de verdad#
Las tablas de verdad ayudan a visualizar el resultado de combinar distintos valores lógicos. Asumamos que existen dos variables A y B que pueden tomar valores tipo bool. La siguiente tabla representa las operaciones posibles:
A |
B |
A and B |
A or B |
not A |
|---|---|---|---|---|
True |
True |
True |
True |
False |
True |
False |
False |
True |
False |
False |
True |
False |
True |
True |
False |
False |
False |
False |
True |
2.3.4. Combinando con comparaciones#
Las operaciones lógicas son muy útiles combinadas con comparaciones:
edad = 25
es_adulto = edad >= 18 and edad < 65
2.3.5. Precedencia#
not se evalúa antes que and, y and antes que or. Usa paréntesis si necesitas alterar el orden:
True or False and False # True (and se evalúa primero)
(True or False) and False # False
2.3.6. Actividad propuesta#
Evalúa mentalmente el resultado de las siguientes expresiones:
True and not FalseFalse or not (True and False)not True or False and True
Recuerda
Las operaciones lógicas devuelven
TrueoFalse.Se usan
and,orynot.Son útiles en condiciones y control de flujo.
2.3.7. Comparaciones#
Las comparaciones permiten evaluar relaciones entre valores y devuelven un valor booleano.
Operador |
Significado |
Ejemplo |
Resultado |
|---|---|---|---|
|
Igual a |
|
|
|
Distinto de |
|
|
|
Menor que |
|
|
|
Menor o igual que |
|
|
|
Mayor que |
|
|
|
Mayor o igual que |
|
|
También puedes encadenar comparaciones:
x = 10
5 < x < 20 # True
Esto es equivalente a escribir:
5 < x and x < 20
2.3.8. Ejercicio de comparaciones#
Abre una sesión en el intérprete de python o corre este código en alguna libreta de jupyter. Completa las siguientes expresiones para que devuelvan el valor booleano indicado:
7 ___ 3 # True
4 ___ 4 # False
"gato" ___ "perro" # True
10 ___ 2 * 5 # False
edad = 18
edad ___ 18 # True
3 < 5 ___ 7 # True
2.3.9. Valores lógicos intrínsecos#
Todos los objetos en Python tienen un valor lógico (booleano) intrínseco. Es decir, aunque el valor no sea True o False, tienen una equivalencia con estos valores.
Por ejemplo, el número int 0, tiene una equivalencia con False, al igual que cualquier colección vacía, es decir [], que es una lista vacía equivalente a False. La siguiente tabla compila los ejemplos más típicos, pruébalos en tu consola de Python o en alguna libreta.
Valor |
Explicación |
Valor lógico intrínseco |
|---|---|---|
|
Número entero o flotante igual a cero |
|
|
Cualquier número diferente de cero |
|
|
Cadena de texto vacía |
|
|
Cadena de texto no vacía |
|
|
Lista vacía |
|
|
Lista con elementos |
|
|
Diccionario vacío |
|
|
Diccionario con contenido |
|
|
Conjunto vacío |
|
|
Conjunto con elementos |
|
|
Valor nulo o ausencia de valor |
|
|
Instancia de objeto genérico |
|
Recuerda: puedes usar la función bool() para verificar el valor lógico de cualquier objeto:
bool(0) # False
bool('') # False
bool([1, 2]) # True
bool(None) # False