Order of Operations in Python

Order of Operations in Python

We have a variety of operators in Python, like arithmetical, logical, and more. An expression is a combination of operators, operands, variables. Sometimes, it isn’t easy to evaluate an expression due to many operators, and it is not clear which operator should be evaluated first.

For example, if we evaluate the + operator first in 10 + 2 / 2, we get 12/2, which is 6. However, if we evaluate / first, we get 10 + 1, which is 11.

Therefore, the order in which operators will execute is important. In Python, we determine this using the Precedence of Operators. It determines which operators will execute first in an expression. Expressions in Python are usually executed from left to right.

The complete list of the order of operators from high to low is given below.

Order of Operations in Python

It is simple to remember the above list using PEMDAS. Here, P means parentheses, E means exponential, MD means multiplication and division as both have the same precedence, and AS stands for addition and subtraction.

When operators have the same precedence, the one occurring first is executed.

Take the following example,

a = 10 * 5 + 2 / (8 + 2)
print(a)

Output:

50.2

Let us break down the above example. First, the expression within the parentheses, which comes out to be 10. Then the * operator is executed, calculating 10*5, 50. The / operator calculates 2/10, which is 0.2. Finally, the + operator evaluates 50 + 0.2, which is 50.2.

We perform much more complicated calculations in Python with more complex expressions. The parentheses have the highest precedence, as shown in the previous example. Thus they are used in such complex expressions to group the sub-expressions accordingly to control which operators evaluate first.

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Related Article - Python Operator

  • Conditional Assignment Operator in Python
  • Python Bitwise NOT
  • Unpack Operator ** in Python
  • Overload Operator in Python
  • Python ->
  • The Walrus Operator := in Python