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