Los operadores lógicos permiten construir expresiones booleanas más complejas combinando múltiples condiciones. Estas expresiones se evalúan como True
o False
, y son fundamentales al momento de tomar decisiones en programas que requieren estructuras condicionales como if
, while
o for
.
En Python, existen tres operadores lógicos principales:
Operador | Significado |
---|---|
and | Devuelve True si ambas condiciones son True. |
or | Devuelve True si al menos una condición es True. |
not | Invierte el valor lógico: True se convierte en False y viceversa. |
Operador and:
El operador and
evalúa si las dos condiciones son verdaderas. Solo si ambas lo son, el resultado será True
. Si alguna de ellas es False
, el resultado total será False
.
Sintaxis general:
condición1 and condición2
Ejemplo:
hace_sol = True
es_fin_de_semana = True
# Solo iré a la playa si hace sol y es fin de semana
ir_a_la_playa = hace_sol and es_fin_de_semana
print(ir_a_la_playa) # True
Si una de las condiciones fuera False
, no se cumpliría el plan de ir a la playa.
Operador or:
Devuelve True
si al menos una de las condiciones es verdadera. Solo devuelve False
cuando todas las condiciones son False
.
Sintaxis general:
condición1 or condición2
Ejemplo:
tengo_dinero = False
me_invitan = True
# Iré al cine si tengo dinero o me invitan
ir_al_cine = tengo_dinero or me_invitan
print(ir_al_cine) # True
Operador not:
El operador not
invierte el valor lógico de una expresión. Si la expresión es True
, se convierte en False
, y viceversa.
Sintaxis general:
condición1 not condición2
Ejemplo:
llueve = True
# No saldré si llueve
salir = not llueve
print(salir) # False
También se pueden usar múltiples not
seguidos. El número de veces que se aplique determina si el valor se mantiene o se invierte:
- Si se aplica un número
par
de veces, el valor original se conserva. - Si se aplica un número
impar
de veces, el valor se invierte.
valor = True
print(not not valor) # True
print(not not not valor) # False
Precedencia de los operadores lógicos:
Python evalúa los operadores lógicos en el siguiente orden de precedencia (de mayor a menor):
not
and
or
Esto significa que en una expresión sin paréntesis, not
se evalúa primero, luego and
, y finalmente or
.
Ejemplo sin paréntesis:
resultado = True or False and False
# Primero: False and False → False
# Luego: True or False → True
print(resultado) # True
Usar paréntesis: puede cambiar el orden de evaluación y mejorar la legibilidad:
resultado = (True or False) and False # True and False → False
print(resultado) # False
Valores equivalentes a booleanos:
En Python, no solo se utilizan True
y False
para representar valores lógicos. Algunos otros valores también son tratados como booleanos:
- Se consideran Falsos:
0
,0.0
,''
(cadena vacía),[]
,{}
,None
- Todo lo demás es considerado Verdadero.
Ejemplo:
if 0:
print("Esto no se imprime")
if "Hola":
print("Esto sí se imprime")