Python 3 - Ejemplo de precedencia de operadores
La siguiente tabla enumera todos los operadores desde la precedencia más alta hasta la más baja.
No Señor. | Operador y descripción |
---|---|
1 | ** Exponenciación (subir al poder) |
2 | ~ + - complemento, unario más y menos (los nombres de métodos para los dos últimos son + @ y - @) |
3 | * / % // Multiplica, divide, módulo y división de piso |
4 | + - Adición y sustracción |
5 | >> << Desplazamiento bit a bit a derecha e izquierda |
6 | & Bit a bit 'Y' |
7 | ^ | "OR" exclusivo bit a bit y "OR" regular |
8 | <= < > >= Operadores de comparación |
9 | <> == != Operadores de igualdad |
10 | = %= /= //= -= += *= **= Operadores de Asignación |
11 | is is not Operadores de identidad |
12 | in not in Operadores de membresía |
13 | not or and Operadores logicos |
La precedencia del operador afecta la evaluación de una expresión.
Por ejemplo, x = 7 + 3 * 2; aquí, a x se le 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, aquellos con menor precedencia aparecen en la parte inferior.
Ejemplo
#!/usr/bin/python3
a = 20
b = 10
c = 15
d = 5
print ("a:%d b:%d c:%d d:%d" % (a,b,c,d ))
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)
Salida
Cuando ejecuta el programa anterior, produce el siguiente resultado:
a:20 b:10 c:15 d:5
Value of (a + b) * c / d is 90.0
Value of ((a + b) * c) / d is 90.0
Value of (a + b) * (c / d) is 90.0
Value of a + (b * c) / d is 50.0