Operadores en Python. Tipos y prioridad.
Operadores en Python. Tipos y prioridad.

Contenido
Clasificación de los Operadores en Python
Existen dos formas de clasificar en Python los operadores.
Se pueden clasificar según si afectan a una o dos variables o valores.
- Unarios
- Binarios
También se pueden clasificar según su tipo o funcionalidad:
- Aritméticos
- Lógicos
- De asignación
- De comparación
- De Pertenencia
- De identidad
- A nivel de bit
- De expresiones de asignación
- De concatenación y repetición
Aritméticos
Los operadores aritméticos se utilizan con valores numéricos para realizar operaciones matemáticas comunes.
| Operador | Sintaxis | Descripción |
|---|---|---|
| + | a+b | Suma |
| – | a-b | Resta |
| * | a*b | Multiplicación |
| / | a/b | División |
| // | a//b | División Entera |
| % | a%b | Módulo o Resto |
| ** | a**b | Exponente |
| + | +a | Positivo (unario) |
| – | -a | Negación aritmética (unario) |
Lógicos
Los operadores lógicos se utilizan para combinar sentencias condicionales.
| Operador | Sintaxis | Descripción |
|---|---|---|
| and | a and b | Y lógico |
| or | a or b | O lógico |
| not | not a | Negación lógica |
De asignación
Los operadores de asignación se utilizan para asignar valores a variables.
| Operador | Sintaxis | Descripción |
|---|---|---|
| = | a=b | Asignación |
| += | a+=b | Asignación con suma (a=a+b) |
| -= | a-=b | Asignación con resta (a=a-b) |
| *= | a*=b | Asignación con multiplicación (a=a*b) |
| /= | a/=b | Asignación con división (a=a/b) |
| //= | a//=b | Asignación con división entera (a=a//b) |
| %= | a%=b | Asignación con módulo o resto (a=a%b) |
| **= | a**=b | Asignación con exponente (a=a**b) |
De comparación
Los operadores de comparación se utilizan para comparar dos valores.
| Operador | Sintaxis | Descripción |
|---|---|---|
| == | a==b | Igual a |
| != | a!=b | Diferente de |
| > | a>b | Mayor que |
| < | a<b | Menor que |
| >= | a>=b | Mayor o igual que |
| <= | a<=b | Menor o igual que |
De pertenencia
Los operadores de pertenencia se utilizan para comprobar si una secuencia se presenta en un objeto. Siempre devuelven un valor True o False.
| Operador | Sintaxis | Descripción |
|---|---|---|
| in | seq in obj | Devuelve True si una secuencia con el valor especificado está presente en el objeto |
| not in | seq not in obj | Devuelve True si una secuencia con el valor especificado no está presente en el objeto |
De identidad
Los operadores de identidad se utilizan para comparar los objetos, no si son iguales, sino si son realmente el mismo objeto, con la misma posición de memoria. Siempre devuelven un valor True o False.
| Operador | Sintaxis | Descripción |
|---|---|---|
| is | obj1 is obj2 | Devuelve True si ambas variables son el mismo objeto |
| is not | obj1 is not obj2 | Devuelve True si ambas variables no son el mismo objeto |
A nivel de bit
Los operadores bit a bit se utilizan para comparar números (binarios).
| Operador | Sintaxis | Descripción |
|---|---|---|
| & | a&b | AND |
| | | a|b | OR |
| ^ | a^b | XOR |
| ~ | ~a | NOT (unario) |
| << | a << cantidad de bits | Desplazamiento a la izquierda |
| >> | a >> cantidad de bits | Desplazamiento a la derecha |
De expresiones de asignación
A partir de la versión de Python 3.8 se crea un nuevo operador que permite asignar un valor a una variable dentro de una expresión. Se conoce informalmente como el operador Morsa (Walrus en inglés).
| Operador | Sintaxis | Descripción |
|---|---|---|
| := | a:=expresión | Expresión de asignación |
De concatenación y repetición
Los operadores + y * adquieren un significado ligeramente diferente cuando se utilizan con tipos de datos de secuencia.
| Operador | Sintaxis | Descripción |
|---|---|---|
| + | seq1+seq2 | Concatenación de secuencias |
| * | seq*n | Repetición de una secuencia n veces |
Prioridad de los operadores
Al igual que en matemáticas, en Python no todos los operadores tienen el mismo nivel de prioridad, por lo tanto se ejecutan en un orden determinado.
En la siguiente tabla se muestran los operadores ordenados por prioridad, desde el nivel más alto (mayor prioridad) hasta el más bajo:
| Operador | Descripción |
|---|---|
| ** | Exponente |
| + – ~ | Unarios positivo, negativo y de bits (complemento a uno) |
| * / // % | Multiplicación, división, división entera y módulo |
| + – | Suma y resta |
| << >> | Desplazamiento a la izquierda y a la derecha |
| & | AND a nivel de bits |
| ^ | XOR a nivel de bits |
| | | OR a nivel de bits |
| == != > >= < <= is is not in not in | Operadores de comparación e identidad |
| not | Negación lógica |
| and | Y lógico |
| or | O lógico |
| := | Expresión de asignación |
¿Pero qué ocurre cuando en una expresión aparecen dos operadores de la misma prioridad?
Los operadores se enlazan primero con el valor de la izquierda. Por lo que eso significa que el cálculo de una expresión se realiza siempre de izquierda a derecha.
Existe una excepción a esta norma en el caso del operador de exponenciación **. Con dicho operador se enlaza primero con el valor de la derecha, es decir el cálculo se realiza al revés, de derecha a izquierda.
Los paréntesis
Se puede hacer uso de los paréntesis (tantos como sean necesarios) para modificar el orden de prioridad en los cálculos de una operación, al igual que se hace en las operaciones aritméticas, donde las sub-expresiones dentro de los paréntesis siempre se calculan primero.
Aun cuando no cambien el orden de las operaciones, se pueden usar los paréntesis para mejorar la legibilidad de una expresión.
El arte de programar
El arte de programar
La programación es el proceso creativo de escribir el código más sencillo posible, para que una computadora pueda dar una respuesta óptima a una necesidad humana.

