Ejemplo de precedencia de operadores de Python

La siguiente tabla enumera todos los operadores de mayor a menor precedencia.

Operador Descripción
** Exponenciación (subir al poder)
~ + - Complemento, unario más y menos (los nombres de los dos últimos métodos son + @ y - @)
* /% // Multiplica, divide, módulo y división de piso
+ - Adición y sustracción
>> << Desplazamiento bit a bit a derecha e izquierda
Y Bitwise 'AND'td>
^ | "OR" exclusivo bit a bit y "OR" regular
<= <>> = Operadores de comparación
<> ==! = Operadores de igualdad
=% = / = // = - = + = * = ** = Operadores de Asignación
no lo es Operadores de identidad
en no en Operadores de membresía
no o y Operadores logicos

La precedencia del operador afecta la forma en que se evalúa una expresión.

Por ejemplo, x = 7 + 3 * 2; aquí, x se asigna 13, no 20 porque el operador * tiene mayor precedencia que +, por lo que primero multiplica 3 * 2 y luego se suma a 7.

Aquí, los operadores con mayor precedencia aparecen en la parte superior de la tabla, los que tienen la menor prioridad aparecen en la parte inferior.

Ejemplo

#!/usr/bin/python

a = 20
b = 10
c = 15
d = 5
e = 0

e = (a + b) * c / d       #( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ",  e

e = ((a + b) * c) / d     # (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ",  e

e = (a + b) * (c / d);    # (30) * (15/5)
print "Value of (a + b) * (c / d) is ",  e

e = a + (b * c) / d;      #  20 + (150/5)
print "Value of a + (b * c) / d is ",  e

Cuando ejecuta el programa anterior, produce el siguiente resultado:

Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Value of a + (b * c) / d is 50