What Are Python Operators?
Python operators are special syntactical sugar to run basic operations without calling their respective methods. For example, you can use the
+ operator in
a + b instead of the more clunky
.add() method in
a.add(b). Each operator has a unique symbol that is placed between the two arguments called operands.
A simple example is given next where the + operator is applied to operands 40 and 2 to generate the sum 42:
>>> 40 + 2 42
Comparison operators are applied to comparable objects and they return a Boolean value (
|>||Greater Than||Returns |
|<||Less Than||Returns |
|==||Equal To||Returns |
|!=||Not Equal To||Returns |
|>=||Greater Than or Equal To||Returns |
|<=||Less Than or Equal To||Returns |
Arithmetic operators are syntactical shortcuts to perform basic mathematical operations on numbers.
|+||Addition||Calculating the sum of the two operands|
|–||Subtraction||Subtracting the second operand from the first operand|
|*||Multiplication||Multiplying the first with the second operand|
|/||Division||Dividing the first by the second operand|
|%||Modulo||Calculating the remainder when dividing the first by the second operand|
|//||Integer Division, Floor Division||Dividing the first operand by the second operand and rounding the result down to the next integer|
|**||Exponent||Raising the first operand to the power of the second operand|
Logical operators are shortcuts to perform Boolean comparisons, but can be used on integers and other objects as well.
Bitwise operators perform operations on the binary (bit) representation of integers.
Background: Each integer is first written as a binary number that is a sequence of digits 0 or 1. For example:
- 0 is written as “0”
- 1 is written as “1”
- 2 is written as “10”
- 3 is written as “11”
- 4 is written as “100”
- 5 is written as “101”
The bitwise operators are then applied on those binary representations. The resulting binary number is then converted back to the integer representation (decimal number).
In the following table, we exemplify all bit-wise operators with variables
y defined as follows:
>>> x = 4 # 100 >>> y = 5 # 101
As a comment, we also provide the binary representation
100 for the decimal integer
101 for the decimal integer
|&||Bitwise AND||Performs the AND operation on a bit-by-bit basis|
||||Bitwise OR||Performs the OR operation on a bit-by-bit basis|
|~||Bitwise NOT||Performs the Bitwise NOT – i.e., inverts each bit so that 0 becomes 1 and 1 becomes 0. Same as |
|^||Bitwise XOR||Performs the “exclusive or” operation on a bit-by-bit basis|
|>>||Bitwise right shift|
|<<||Bitwise left shift||Shifts each bit one position to the left.|
In-Place Assignment Operators
In-place assignment operators (also called compound assignment operators) perform an operation in-place on a variable provided as first operand. They overwrite the value of the first operand variable with the result of the operation when performing the operator without assignment. For example,
x += 3 is the same as
x = x + 3 of first calculating the result of
x +3 and then assigning it to the variable x.
|Operator||Name||Short Example||Equivalent Long Example|
|In-place Assignment||x = 3||x = 3|
|In-place Addition||x += 3||x = x + 3|
|In-place Subtraction||x -= 3||x = x – 3|
|In-place Multiplication||x *= 3||x = x * 3|
|In-place Division||x /= 3||x = x / 3|
|In-place Modulo||x %= 3||x = x % 3|
|In-place Integer Division||x //= 3||x = x // 3|
|In-place Power||x **= 3||x = x ** 3|
|In-place Logical And||x &= 3||x = x & 3|
|In-place Logical Or||x |= 3||x = x | 3|
|In-place Logical XOR||x ^= 3||x = x ^ 3|
|In-place Bitwise Shift Right||x >>= 3||x = x >> 3|
|<<=||In-place Bitwise Shift Left||x <<= 5||x = x << 5|
Python has two identity operators:
is not. They are used to check if two values or variables reside at the same memory location, i.e., refer to the same object in memory. However, if two variables are equal, this doesn’t imply that they are identical. For example, two lists
[1, 2, 3] and
[1, 2, 3] may be different objects (not identical) but they’re equal in value.
|True if value/variable is found in the sequence||5 in x|
|True if value/variable is not found in the sequence||5 not in x|
Python Operators Precedence
If you have multiple operators in a single expression, it is important to know which operator comes first. For example, consider the expression 2 * 3 + 4. Does Python calculate (2 * 3) + 4 or 2 * (3 + 4)? Depending on the operator precedence, the result would be 10 or 14.
The following table describes the operator precedence relationship. The topmost operator has the highest priority.
|Multiplication, Division, Modulo, Integer Division|
|Bitwise Shift Right and Left|
|Bitwise XOR and OR|
While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.
To help students reach higher levels of Python success, he founded the programming education website Finxter.com. He’s author of the popular programming book Python One-Liners (NoStarch 2020), coauthor of the Coffee Break Python series of self-published books, computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.
His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.