Ya hemos comentado que Python aplica los operadores según un orden determinado por su prioridad. A continuación se muestran los operadores de más prioritarios (en la parte superior de la tabla) a menos prioritarios (en la parte inferior de la tabla):
Operador | Descripción |
---|---|
(expresiones...) [expresiones...], {clave: valor...} {expresiones...} | Visualización o unión de tuplas, listas, diccionarios o conjuntos |
x[índice], x[índice:índice], x(argumentos...), x.atributo | Extracción de datos de estructuras, referencia a atributos |
await x | Expresión await |
** | Exponenciación |
+x, -x, ~x | Especificación de signo, operador "no" a nivel de bits |
*, @, /, //, % | Multiplicación, multiplicación de matrices, división, "floor division", resto |
+, - | Adición y sustracción |
<<, >> | Desplazamiento a nivel de bits |
& | "y" a nivel de bits |
^ | "xor" a nivel de bits |
| | "o" a nivel de bits |
in, not in, is, is not, <, <=, >, >=, ==, != | Comparaciones, identificación y pertenencia |
not x | "no" booleano |
and | "y" booleano |
or | "o" booleano |
if - else | Expresión condicional |
lambda | Expresión lambda |
Como se ha comentado, éste es el orden por defecto, pero siempre podemos utilizar paréntesis para determinar el orden en el que queremos que se apliquen los operadores.