Python/Generalidades/Tabla de operadores con asociatividad y precedencia
Muchos programas realizan cálculos aritméticos. Debemos notar el uso de varios símbolos especiales que no son utilizados en algebra. El asterisco (*) indica multiplicación y el signo de porcentaje (%) es el operador de modulo.
Python aplica los operadores en las expresiones aritméticas en un orden preciso determinado por las siguientes reglas de precedencia del operador, las cuales son generalmente las mismas que las seguidas en algebra:
1. Las expresiones contenidas dentro de pares de paréntesis son evaluadas primero. Los paréntesis se dice que se encuentran en “lo más alto del nivel de precedencia”. En el caso de paréntesis anidados, los operadores en el par de paréntesis mas interno son aplicados primero.
2. Las operaciones de exponentes son aplicadas después. Si una expresión contiene muchas operaciones de exponentes, los operadores son aplicados de derecha a izquierda.
3. La multiplicación, división y modulo son las siguientes en ser aplicadas. Si una expresión contiene muchas multiplicaciones, divisiones u operaciones de modulo, los operadores se aplican de izquierda a derecha. La multiplicación, división y modulo se dice que se encuentran en el mismo nivel de precedencia.
4. Suma y resta son las operaciones que se aplican por ultimo. Si una expresión contiene muchas operaciones de suma y resta, los operadores son aplicados de izquierda a derecha. La suma y resta tienen el mismo nivel de precedencia.
Operadores Relacionales y de Igualdad
Todos los operadores relacionales tienen el mismo nivel de precedencia y se asocian de izquierda a derecha. Todos los operadores de igualdad tienen el mismo nivel de precedencia, el cual es más bajo que la precedencia de los operadores relacionales. Los operadores de igualdad también se asocian de izquierda a derecha.
Precedencia de las operaciones en Python
editarLa siguiente lista muestra el orden de evaluación de todas las operaciones de Python. Operaciones que aparezcan más arriba se evalúan después que las que aparecen más abajo. Operaciones de la en la misma fila se evalúan de izquierda a derecha.[1]
(expresiones...) ,
|
Paréntesis, listas, tuplas, diccionarios, etc |
x[índice] , x[índice:índice] , x(argumentos...) , x.atributo
|
Elementos de una lista, rangos, llamadas a funciones, attributos. |
await x
|
Expresión await |
**
|
Exponenciación |
+x , -x , ~x
|
positivo, negativo, not |
* , @ , / , // , %
|
Multiplicación, multiplicación matricial, división, división con redondeo, módulo |
+ , -
|
Suma y restra |
<< , >>
|
Desplazamiento |
&
|
AND bit a bit |
^
|
XOR bit a bit |
|
|
OR bit a bit |
in , not in , is , is not , < , <= , > , >= , != , ==
|
camparaciones, comprobación de membresía |
not x
|
NOT booleano |
and
|
AND booleano |
or
|
OR booleano |
if – else
|
Expresión condicional |
lambda
|
Expresión lambda |
:=
|
Asignación |