- Python Basics
- Python Tutorial
- Python Applications
- Python Versions
- Python environment setup
- Python Basic Syntax
- Python end (end=)
- Python sep (sep=)
- Python Comments
- Python Identifiers
- Python Variables
- Python Operators
- Python Ternary Operator
- Python Operator Precedence
- Python Control and Decision
- Python Decision Making
- Python if elif else
- Python Loops
- Python for Loop
- Python while Loop
- Python break Statement
- Python continue Statement
- Python pass Statement
- Python break vs. continue
- Python pass vs. continue
- Python Built-in Types
- Python Data Types
- Python Lists
- Python Tuples
- Python Sets
- Python frozenset
- Python Dictionary
- List vs. Tuple vs. Dict vs. Set
- Python Numbers
- Python Strings
- Python bytes
- Python bytearray
- Python memoryview
- Python Misc Topics
- Python Functions
- Python Variable Scope
- Python Enumeration
- Python import Statement
- Python Modules
- Python operator Module
- Python os Module
- Python Date and Time
- Python Exception Handling
- Python File Handling
- Python Advanced
- Python Classes and Objects
- Python @classmethod Decorator
- Python @staticmethod Decorator
- Python Class vs. Static Method
- Python @property Decorator
- Python Keywords
- Python Keywords
- Python and
- Python or
- Python not
- Python True
- Python False
- Python None
- Python in
- Python is
- Python as
- Python with
- Python yield
- Python return
- Python del
- Python from
- Python lambda
- Python assert
- Python Built-in Functions
- Python All Built-in Functions
- Python print() Function
- Python input() Function
- Python int() Function
- Python len() Function
- Python range() Function
- Python str() Function
- Python ord() Function
- Python chr() Function
- Python read()
- Python write()
- Python open()
- Python Examples
- Python Examples
Operator precedence in Python with examples
In Python, operator precedence determines the order of operation in an expression with multiple operands and operators. Operator precedence provides the priority of operators that are used in expressions. That is, operator precedence determines which operation is carried out first, then which operation is carried out second, and so on.
That is, if there are multiple operands and operators in an expression, or if we need to create an expression with multiple operands and operators, then we need an operator precedence table to understand the precedence or priority of operators to do the thing in an accurate way. As a result, I created the operator precedence table to make things easier for you to understand.
Operator Precedence Table
Take note that the operator in the top row has the most precedence, where the operator in the bottom (last) row has the lowest priority.
For example, operators in the 3rd row have higher precedence than operators in the 4th row but lower precedence than operators in the 2nd row. Similarly, operators in the 8th row have higher precedence than operators in the 9th row but lower precedence than operators in the 7th row.
Operator | Name | Syntax | Precedence |
---|---|---|---|
** | Exponent | a ** b | Highest Precedence |
+, -, ˜ | Unary Plus, Unary Minus, Bitwise NOT | +a, -a, ˜a | |
*, /, //, % | Multiplication, Division, Floor division, Modulus | a*b, a/b, a//b, a%b | |
+, - | Addition, Subtraction | a + b, a - b | |
<<, >> | Bitwise Left Shift, Bitwise Right Shift | a << 2, a>>3 | |
& | Bitwise AND | a & b | |
| | Bitwise OR | a | b | |
^ | Bitwise XOR | a ^ b | |
==, !=, >, >=, <, <= | Comparison Operators | a == b, a != b, a > b, a < b, a >= b, a <= b | |
is, is not | Identity Operators | a is b, a is not b | |
in, not in | Membership Operators | element in a, element not in a | |
not | Logical NOT | not(a > b) | |
and | Logical AND | a > b and a < c | |
or | Logical OR | a > b or a < c | Lowest Precedence |
Here is an example showing how the precedence of the operator determines the priority of the operation to be evaluated in an expression:
a, b, c, d = 2, 3, 4, 5
res = a + b ** c / d
print(res)
The output produced by the above program is shown in the snapshot given below:
From the above example program, the expression gets evaluated in this way:
a + b ** c / d = a + 3 ** 4 / d = a + 81 / d = a + 81 / 5 = a + 16.2 = 2 + 16.2 = 18.2
I've not taken some of the operators in the expression given above, because if I do so, then the final answer will be in the form of "true" or "false." Therefore, to create a more understandable expression, I've done the things shown above. Now the expression given below uses most categories of operator. But before evaluating the expression, consider the statement given below:
a, b, c, d, e, f = 2, 3, 4, 5, 6, 7
initializes 2 to a, 3 to b, 4 to c, 5 to d, 6 to e, and 7 to f. That is, a = 2, b = 3, c = 4, d = 5, e = 6, and f = 7. Now let's evaluate the expression based on these variables:
a + b // c ** d != e is not f = a + b // 4 ** 5 != e is not f = a + b // 1024 != e is not f = a + 3 // 1024 != e is not f = a + 0 != e is not f = 2 + 0 != e is not f = 2 != e is not f = 2 != 6 is not f = True is not f = True is not 7 = True
Therefore, True is the final output, as you'll see after evaluating the above expression one by one while keeping operator precedence in mind.
« Previous Tutorial Next Tutorial »