Guía Completa de Operadores en Python: Aritméticos, Lógicos, Comparación, Asignación, Bitwise y Precedencia
¿Qué Son los Operadores Lógicos en Python?
Los operadores lógicos en Python evalúan expresiones booleanas y devuelven True o False. Los tres operadores lógicos principales son and, or y not. Son indispensables para controlar el flujo con if, while y otras sentencias condicionales.
En este tutorial exploraremos el espectro completo de operadores en Python, incluyendo:
- Operadores Aritméticos
- Operadores de Comparación
- Operadores de Asignación
- Operadores Lógicos y Bitwise
- Operadores de Pertenencia
- Operadores de Identidad
- Precedencia de Operadores
Operadores Aritméticos
Los operadores aritméticos realizan cálculos numéricos. Python soporta los operadores habituales: + (adición), - (sustracción), * (multiplicación), / (división real), // (división entera), % (módulo) y ** (exponenciación). Estos pueden usarse directamente en expresiones o vía la función integrada eval() para evaluación dinámica.
Ejemplo: Adición Simple
x = 4 y = 5 print(x + y) # Salida: 9
Los otros operadores funcionan de forma similar; por ejemplo, 4 * 5 produce 20, 4 / 2 da 2.0 y 4 ** 2 resulta en 16.
Operadores de Comparación
Los operadores de comparación (relacionales) evalúan la relación entre dos valores y devuelven un resultado booleano. Incluyen:
==(igual)!=(no igual)<(menor que)<=(menor o igual que)>(mayor que)>=(mayor o igual que)
Ejemplo: Comparando Dos Variables
x = 4
y = 5
print('x > y es', x > y) # Salida: False
Operadores de Asignación
Los operadores de asignación almacenan valores en variables. La forma básica es =, mientras que los operadores compuestos combinan una operación con asignación, como +=, -=, *=, /= y **=.
Ejemplo: Asignación Básica y Compuesta
num1 = 4
num2 = 5
print('Línea 1 - Valor de num1:', num1)
print('Línea 2 - Valor de num2:', num2)
# Adición compuesta
res = num1 + num2
res += num1
print('Línea 3 - Resultado tras res += num1:', res) # Salida: 13
Operadores Lógicos y Bitwise
Los operadores lógicos (and, or, not) evalúan expresiones booleanas. Los operadores bitwise (&, |, ^, ~, <<, >>) realizan manipulación a nivel de bits.
Ejemplo: Operaciones Lógicas
a = True
b = False
print('a and b es', a and b) # Salida: False
print('a or b es', a or b) # Salida: True
print('not a es', not a) # Salida: False
Operadores de Pertenencia
Los operadores de pertenencia testean la presencia de un valor dentro de una secuencia: in y not in.
Ejemplo: Comprobando Pertenencia en una Lista
x = 4
y = 8
lista_ejemplo = [1, 2, 3, 4, 5]
if x in lista_ejemplo:
print('Línea 1 - x está disponible en la lista')
else:
print('Línea 1 - x no está disponible en la lista')
if y not in lista_ejemplo:
print('Línea 2 - y no está disponible en la lista')
else:
print('Línea 2 - y está disponible en la lista')
Operadores de Identidad
Los operadores de identidad comparan las direcciones de memoria de los objetos: is y is not. Son esenciales cuando se distingue entre objetos que son iguales en valor pero distintos en identidad.
Ejemplo: Comparación de Identidad
x = 20
y = 20
if x is y:
print('x e y tienen la misma identidad')
y = 30
if x is not y:
print('x e y tienen identidades diferentes')
Precedencia de Operadores
Python sigue una jerarquía estricta de precedencia para resolver expresiones sin paréntesis. La precedencia más alta es la exponenciación (**), seguida de operadores unarios, multiplicación/división/módulo, adición/sustracción, operadores de comparación, operadores de identidad, operadores de pertenencia, operadores lógicos y finalmente operadores de asignación.
Usar paréntesis anula la precedencia por defecto y hace las expresiones explícitas.
Ejemplo: Precedencia en Acción
v = 4
w = 5
x = 8
y = 2
z = (v + w) * x / y
print('Valor de (v + w) * x / y es', z) # Salida: 28.0
Compatibilidad con Python 2
A continuación se muestran snippets equivalentes para Python 2, que usa sentencias print sin paréntesis.
# Operadores Aritméticos
x = 4
y = 5
print x + y
# Operadores de Comparación
x = 4
y = 5
print 'x > y es', x > y
# Operadores de Asignación
num1 = 4
num2 = 5
print 'Línea 1 - Valor de num1:', num1
print 'Línea 2 - Valor de num2:', num2
# Asignación Compuesta
num1 = 4
num2 = 5
res = num1 + num2
res += num1
print 'Línea 3 - Resultado tras res += num1:', res
# Operadores Lógicos
a = True
b = False
print 'a and b es', a and b
print 'a or b es', a or b
print 'not a es', not a
# Operadores de Pertenencia
x = 4
y = 8
lista_ejemplo = [1, 2, 3, 4, 5]
if x in lista_ejemplo:
print 'Línea 1 - x está disponible en la lista'
else:
print 'Línea 1 - x no está disponible en la lista'
if y not in lista_ejemplo:
print 'Línea 2 - y no está disponible en la lista'
else:
print 'Línea 2 - y está disponible en la lista'
# Operadores de Identidad
x = 20
y = 20
if x is y:
print 'x e y tienen la misma identidad'
y = 30
if x is not y:
print 'x e y tienen identidades diferentes'
# Precedencia de Operadores
v = 4
w = 5
x = 8
y = 2
z = (v + w) * x / y
print 'Valor de (v + w) * x / y es', z
Resumen
- Los operadores aritméticos manejan cálculos numéricos.
- Los operadores de comparación determinan la verdad relacional.
- Los operadores de asignación almacenan valores; variantes compuestas combinan operaciones.
- Los operadores lógicos gobiernan el control de flujo; los bitwise manipulan bits.
- Los operadores de pertenencia testean contención en secuencias.
- Los operadores de identidad comparan identidades de objetos.
- La precedencia de operadores dicta el orden de evaluación; los paréntesis pueden anularla.
python
- Dominando operadores bit a bit y de desplazamiento en C#: Guía completa
- Dominando operadores bitwise en C: AND, OR, XOR, desplazamientos y complemento
- Variables, constantes y literales en Python – Guía completa
- Dominando tipos de datos en Python: Guía práctica
- Dominando operadores en Python: Guía completa
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
- Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
- Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
- Dominando datetime en Python: Guía Práctica de Fechas, Horas y Zonas Horarias
- Diccionarios en Python: Añadir, Actualizar y Gestionar Pares Clave/Valor