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