Operadores en Python
Los operadores en Python son símbolos especiales que realizan operaciones específicas en uno o más valores (operandos). Son esenciales para realizar cálculos, comparaciones y manipulaciones de datos en los programas.
Operadores Aritméticos
+: Suma # x = 5 + 3 Resultado: x = 8
-: Resta # x = 5 - 3 Resultado: x = 2
*: Multiplicación # x = 5 * 3 Resultado: 15
/: División (siempre retorna un float) # x = 5 / 2 Resultado: 2.5
//: División entera (retorna un int) # x = 5 // 2 Resultado: 2
%: Módulo (resto de la división) # x = 5 % 2 Resultado: 1
**: Exponenciación # x = 2 ** 3 Resultado: 8
Operadores de Comparación
Comparan dos valores y devuelven un valor booleano (True
o False
).
==: Igual a # 5 == 5 # Resultado: True
!=: No igual a # 5 != 3 Resultado: True
>: Mayor que # 5 > 3 Resultado: True
<: Menor que # 3 < 5 Resultado: True
>=: Mayor o igual que # 5 >= 5 Resultado: True
<=: Menor o igual que # 3 <= 5 Resultado: True
Operadores Lógicos
and: Y lógico # (5 > 3) and (2 < 4) Resultado: True
or: O lógico # (5 > 3) or (2 > 4) Resultado: True
not: Negación lógica # not(5 > 3) Resultado: False
Operadores de Asignación
=: Asignación simple # x = 5 Equivalente a x = 5
+=: Asignación con suma # x += 3 Equivalente a x = x + 3
-=: Asignación con resta # x -= 2 Equivalente a x = x - 2
*=: Asignación con multiplicación # x *= 4 Equivalente a x = x * 4
/=: Asignación con división # x /= 2 Equivalente a x = x / 2
//=: Asignación con división entera # x //= 2 Equivalente a x = x // 2
%=: Asignación con resto de la división # x %= 3 Equivalente a x = x % 3
**=: Asignación con Exponenciación # x **= 2 Equivalente a x = x ** 2
Operadores de Identidad
Comprueban si dos variables hacen referencia al mismo objeto en memoria.
is: Comprueba si dos objetos son el mismo objeto
x = [1, 2, 3]
y = x
x is y # Resultado: True
is not: Comprueba si dos objetos no son el mismo objeto
x = [1, 2, 3]
y = [1, 2, 3]
x is not y # Resultado: True
Operadores de Pertenencia
Comprueban si un valor está presente en una secuencia, como una lista, tupla, cadena o conjunto.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores Bit a Bit (Para tipos enteros)
& (AND a nivel de bits): Realiza una operación AND bit a bit.
5 & 3 # Resultado: 1 (0101 & 0011 = 0001)
| (OR a nivel de bits): Realiza una operación OR bit a bit.
5 | 3 # Resultado: 7 (0101 | 0011 = 0111)
^ (XOR a nivel de bits): Realiza una operación XOR bit a bit.
5 ^ 3 # Resultado: 6 (0101 ^ 0011 = 0110)
~ (NOT a nivel de bits): Invierte los bits.
~5 # Resultado: -6 (invertir los bits de 5)
<< (Desplazamiento a la izquierda): Desplaza los bits hacia la izquierda, añadiendo ceros.
5 << 1 # Resultado: 10 (0101 << 0001 = 1010)
>> (Desplazamiento a la derecha): Desplaza los bits hacia la derecha.
5 >> 1 # Resultado: 2 (0101 >> 1 = 0010)
Prioridad de los Operadores
En Python, los operadores tienen una prioridad o precedencia que determina el orden en que se evalúan cuando hay múltiples operadores en una expresión. Los operadores de mayor precedencia se evalúan antes que los de menor precedencia. Si varios operadores tienen la misma precedencia, la evaluación se realiza de izquierda a derecha (asociatividad de izquierda), salvo algunas excepciones, como la potencia.
A continuación se presenta una lista de los operadores de Python ordenados de mayor a menor precedencia, junto con ejemplos para ilustrar cómo afecta la prioridad:
Operadores de Paréntesis ()
Los paréntesis tienen la mayor precedencia y se utilizan para forzar un orden específico de evaluación en las expresiones.
(3 + 2) * 4 # Resultado: 20
# Se evalúa primero lo que está dentro de los paréntesis.
Exponenciación **
Este operador eleva un número a la potencia de otro. Tiene asociatividad de derecha a izquierda, lo que significa que se evalúa de derecha a izquierda.
2 ** 3 ** 2 # Resultado: 512
# Se evalúa primero 3 ** 2 (9) y luego 2 ** 9.
Operadores Unarios +, -, ~
Estos son operadores que se aplican a un solo operando: + para el valor positivo, - para el negativo, y ~ para la negación bit a bit.
-5 + 3 # Resultado: -2
Multiplicación *, División /, División Entera //, Módulo %
Todos estos operadores tienen la misma precedencia y se evalúan de izquierda a derecha.
5 * 2 // 3 # Resultado: 3
# Se evalúa primero 5 * 2, luego el resultado se divide por 3.
Suma + y Resta -
La suma y la resta también tienen la misma precedencia y se evalúan de izquierda a derecha.
5 - 3 + 2 # Resultado: 4
# Se evalúa primero 5 - 3, luego se le suma 2.
Operadores de Desplazamiento <<, >>
Estos operadores realizan desplazamientos de bits hacia la izquierda o derecha, respectivamente.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores de Comparación <, <=, >, >=
Comparan dos valores y devuelven un valor booleano. Tienen la misma precedencia y se evalúan de izquierda a derecha.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores de Igualdad ==, !=
Comprueban si dos valores son iguales o distintos. Tienen menor precedencia que los operadores de comparación.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores a Nivel de Bits & (AND bit a bit)
Este operador realiza una operación AND a nivel de bits.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores a Nivel de Bits ^ (XOR) y | (OR bit a bit)
Estos operadores realizan operaciones XOR (OR exclusivo) y OR a nivel de bits.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores Lógicos not, and, or
Estos operadores se usan para combinar condiciones lógicas. not tiene mayor precedencia que and y or.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores de Asignación =, +=, -=, *=, /=, etc.
Estos operadores asignan un valor a una variable. Tienen baja precedencia, por lo que las operaciones del lado derecho de una asignación se evalúan primero.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores de Identidad is, is not
Verifican si dos variables se refieren al mismo objeto.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True
Operadores de Pertenencia in, not in
Comprueban si un elemento está presente en una secuencia.
in: Comprueba si un valor está en una secuencia
3 in [1, 2, 3] # Resultado: True
not in: Comprueba si un valor no está en una secuencia
4 not in [1, 2, 3] # Resultado: True