El orden de las operaciones

Cuando aparece más de un operador en una expresión, el orden de evaluación depende de las reglas de precedencia. Python sigue las mismas reglas de preferencia que los propios matemáticos para sus operaciones matemáticas.
Los ingleses usan el acrónimo PEMDAS como regla parea recordar el orden de las operaciones:

  • Paréntesis.- tienen la preferencia más alta y pueden usarse para forzar que una expresión se evalúe en el orden que queramos nosotros. Puesto que las expresiones entre paréntesis se evalúan primero, 2 * (3-1) es igual a 4, y (1+1)**(5-2) es igual a 8. También puede usar paréntesis para que una expresión sea más legible; por ejemplo (minuto * 100) / 60, aunque el resultado no cambie de todas formas.
  • Exponenciación.- tiene la siguiente preferencia más alta; ası́ pues 2**1+1 es igual a 3 y no a 4, y 3*1**3 es igual a 3 y no a 27.
  • Multiplicación y la División.- tienen la misma preferencia, que es más alta que la de la Adición y la Sustracción, que tienen también la misma precedencia. Por tanto 2*3-1 devuelve 5 y no 4, y 2/3-1 da -1, y no 1 (recuerde que en la división de enteros 2/3 da 0).
  • Los operadores.- que tienen la misma preferencia se evalúan de izquierda a derecha. Ası́, en la expresión minuto*100/60, tiene lugar primero la multiplicación, devolviendo tt 5900/60, que a su vez da como resultado 98. Si las operaciones se hubiesen realizado de derecha a izquierda, el resultado habría sido 59/1 que da 59, y que es incorrecto.