Buscar..


Introducción

Los operadores de Python tienen un orden de prioridad establecido , que determina qué operadores se evalúan primero en una expresión potencialmente ambigua. Por ejemplo, en la expresión 3 * 2 + 7, primero se multiplica 3 por 2, y luego el resultado se agrega a 7, obteniendo 13. La expresión no se evalúa al revés, porque * tiene una precedencia más alta que +.

A continuación hay una lista de operadores por precedencia y una breve descripción de lo que hacen (generalmente).

Observaciones

De la documentación de Python:

La siguiente tabla resume las precedencias del operador en Python, desde la precedencia más baja (menos vinculante) hasta la precedencia más alta (más vinculante). Los operadores en la misma caja tienen la misma prioridad. A menos que la sintaxis esté explícitamente dada, los operadores son binarios. Los operadores en el mismo grupo agrupan de izquierda a derecha (excepto las comparaciones, incluidas las pruebas, que tienen la misma prioridad y cadena de izquierda a derecha y exponenciación, que agrupa de derecha a izquierda).

Operador Descripción
lambda Expresión lambda
si Expresión condicional
o Booleano o
y Booleano y
no x Booleano no
en, no en, es, no es, <, <=,>,> =, <>,! =, == Comparaciones, incluyendo pruebas de membresía y pruebas de identidad
| Bitwise o
^ Bitwise XOR
Y Y a nivel de bit
<<, >> Turnos
+, - Adición y sustracción
*, /, //,% Multiplicación, división, resto [8]
+ x, -x, ~ x Positivo, negativo, a nivel de bit NO
** Exposiciónción [9]
x [índice], x [índice: índice], x (argumentos ...), x.attribute Suscripción, corte, llamada, atributo de referencia.
(expresiones ...), [expresiones ...], {clave: valor ...}, expresiones ... Encuadernación o visualización de tupla, visualización de lista, visualización de diccionario, conversión de cadena

Ejemplos simples de precedencia de operadores en python.

Python sigue la regla de PEMDAS. PEMDAS significa paréntesis, exponentes, multiplicación y división, y suma y resta.

Ejemplo:

>>> a, b, c, d = 2, 3, 5, 7
>>> a ** (b + c)  # parentheses
256
>>> a * b ** c  # exponent: same as `a * (b ** c)`
7776
>>> a + b * c / d  # multiplication / division: same as `a + (b * c / d)`
4.142857142857142

Extras: las reglas matemáticas se mantienen, pero no siempre :

>>> 300 / 300 * 200
200.0
>>> 300 * 200 / 300
200.0
>>> 1e300 / 1e300 * 1e200
1e+200
>>> 1e300 * 1e200 / 1e300
inf


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow