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 False
False or not (True and False)
not True or False and True
Recuerda
Las operaciones lógicas devuelven
True
oFalse
.Se usan
and
,or
ynot
.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