2.7. El orden de las operaciones

Cuando aparece mas de un operador en una expresión, el orden de evaluación depende de las reglas de precedencia. Python sigue las mismas reglas de precedencia 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 precedencia mas alta y pueden usarse para forzar que una expresión se evalué 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 mas legible; por ejemplo (minuto * 100) / 60, aunque el resultado no cambie de todas formas.
  • Exponenciación tiene la siguiente precedencia mas 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.
  • La Multiplicación y la División tienen la misma precedencia, que es mas 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 precedencia 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.

Comentarios

Entradas populares