2.9. Orden de operaciones
Cuando más de un operador aparece en una expresión, el orden de evaluación depende de la Reglas de precedencia . Python sigue la misma precedencia Reglas para sus operadores matemáticos que hacen las matemáticas.
Paréntesis tener la mayor precedencia y se puede usar para forzar una expresión para evaluar en el orden que desee. Desde expresiones en Los paréntesis se evalúan primero,
2 * (3-1)
es 4 y(1+1)**(5-2)
es 8. También puede usar paréntesis para hacer que una expresión sea más fácil de leer, como en(minute * 100) / 60
, aunque no cambia el resultado.La exponenciación tiene la siguiente precedencia más alta, por lo que
2**1+1
es 3 y no 4, y3*1**3
es 3 y no 27. ¿Puedes explicar por qué?Multiplicación y ambos operadores de división tienen lo mismo precedencia, que es más alta que la adición y la resta, que También tienen la misma precedencia. Entonces
2*3-1
rendimiento de 5 en lugar de 4, y5-2*2
es 1, no 6.Operadores con el mismo precedencia (excepto por
**
) son evaluado de izquierda a derecha. En álgebra decimos que son asociativo de izquierda . Entonces en la expresión6-3+2
, la resta ocurre primero, produciendo 3. Luego agregamos 2 para obtener el resultado 5. Si las operaciones habían sido evaluadas desde De derecha a izquierda, el resultado habría sido6-(3+2)
, que es 1.
Nota
Una excepción a la izquierda a derecha La regla de la izquierda es el operador de exponenciación ** . Una pista útil es usar siempre paréntesis para forzar exactamente el orden que desea cuando La exponenciacion está involucrada:
>>print(2 ** 3 ** 2) # the right-most ** operator gets done first!
>>print((2 ** 3) ** 2) # use parentheses to force the order you want!
Actividad: 2.9.2 Activecode (CH02_23)
Consulte la tabla de precedencia del operador para todos los operadores introducidos en este libro. También verá muchos próximos operadores de pitón no matemáticos.
Comprueba tu comprensión
¿Cuál es el valor de la siguiente expresión:
16 - 2 * 5 // 3 + 1
Actividad: 2.9.3 Opción múltiple
¿Cuál es el valor de la siguiente expresión:
2 ** 2 ** 3 * 3
Actividad: 2.9.4 Opción múltiple
Aquí hay animaciones Para las expresiones anteriores:
Actividad: 2.9.5 showEval
Actividad: 2.9.6 showEval
No hay comentarios.:
Publicar un comentario