Python Operators in general are used to perform operations on values and variables. These are standard symbols used for the purpose of logical and arithmetic operations. In this article, we will look into different types of Python operators.
- OPERATORS: Are the special symbols. Eg- + , * , /, etc.
- OPERAND: It is the value on which the operator is applied.
Arithmetic operators are used to performing mathematical operations like addition, subtraction, multiplication, and division.
- In Python 3.x the result of division is a floating-point while in Python 2.x division of 2 integer was an integer and to obtain an integer result in Python 3.x floored (// integer) is used.
|+||Addition: adds two operands||x + y|
|–||Subtraction: subtracts two operands||x – y|
|*||Multiplication: multiplies two operands||x * y|
|/||Division (float): divides the first operand by the second||x / y|
|//||Division (floor): divides the first operand by the second||x // y|
|%||Modulus: returns the remainder when the first operand is divided by the second||x % y|
|**||Power: Returns first raised to power second||x ** y|
- P – Parentheses
- E – Exponentiation
- M – Multiplication (Multiplication and division have the same precedence)
- D – Division
- A – Addition (Addition and subtraction have the same precedence)
- S – Subtraction
The modulus operator helps us extract the last digit/s of a number. For example:
- x % 10 -> yields the last digit
- x % 100 -> yield last two digits
Example: Arithmetic operators in Python
13 5 36 2.25 2 1 6561
Note: Refer to Differences between / and // for some interesting facts about these two operators.
|>||Greater than: True if the left operand is greater than the right||x > y|
|<||Less than: True if the left operand is less than the right||x < y|
|==||Equal to: True if both operands are equal||x == y|
|!=||Not equal to – True if operands are not equal||x != y|
|>=||Greater than or equal to True if the left operand is greater than or equal to the right||x >= y|
|<=||Less than or equal to True if the left operand is less than or equal to the right||x <= y|
|is||x is the same as y||x is y|
|is not||x is not the same as y||x is not y|
= is an assignment operator and == comparison operator.
Example: Comparison Operators in Python
False True False True False True
Logical operators perform Logical AND, Logical OR, and Logical NOT operations. It is used to combine conditional statements.
|and||Logical AND: True if both the operands are true||x and y|
|or||Logical OR: True if either of the operands is true||x or y|
|not||Logical NOT: True if the operand is false||not x|
Example: Logical Operators in Python
False True False
Bitwise operators act on bits and perform the bit-by-bit operations. These are used to operate on binary numbers.
|&||Bitwise AND||x & y|
||||Bitwise OR||x | y|
|^||Bitwise XOR||x ^ y|
|>>||Bitwise right shift||x>>|
|<<||Bitwise left shift||x<<|
Example: Bitwise Operators in Python
0 14 -11 14 2 40
Assignment operators are used to assign values to the variables.
|=||Assign value of right side of expression to left side operand||x = y + z|
|+=||Add AND: Add right-side operand with left side operand and then assign to left operand||a+=b a=a+b|
|-=||Subtract AND: Subtract right operand from left operand and then assign to left operand||a-=b a=a-b|
|*=||Multiply AND: Multiply right operand with left operand and then assign to left operand||a*=b a=a*b|
|/=||Divide AND: Divide left operand with right operand and then assign to left operand||a/=b a=a/b|
|%=||Modulus AND: Takes modulus using left and right operands and assign the result to left operand||a%=b a=a%b|
|//=||Divide(floor) AND: Divide left operand with right operand and then assign the value(floor) to left operand||a//=b a=a//b|
|**=||Exponent AND: Calculate exponent(raise power) value using operands and assign value to left operand||a**=b a=a**b|
|&=||Performs Bitwise AND on operands and assign value to left operand||a&=b a=a&b|
||=||Performs Bitwise OR on operands and assign value to left operand||a|=b a=a|b|
|^=||Performs Bitwise xOR on operands and assign value to left operand||a^=b a=a^b|
|>>=||Performs Bitwise right shift on operands and assign value to left operand||a>>=b a=a>>b|
|<<=||Performs Bitwise left shift on operands and assign value to left operand||a <<= b a= a << b|
Example: Assignment Operators in Python
10 20 10 100 102400
is and is not are the identity operators both are used to check if two values are located on the same part of the memory. Two variables that are equal do not imply that they are identical.
is True if the operands are identical is not True if the operands are not identical
Example: Identity Operator
in and not in are the membership operators; used to test whether a value or variable is in a sequence.
in True if value is found in the sequence not in True if value is not found in the sequence
Example: Membership Operator
x is NOT present in given list y is present in given list
Precedence and Associativity of Operators
Precedence and Associativity of Operators: Operator precedence and associativity determine the priorities of the operator.
This is used in an expression with more than one operator with different precedence to determine which operation to perform first.
Example: Operator Precedence
610 Hello! Welcome.
If an expression contains two or more operators with the same precedence then Operator Associativity is used to determine. It can either be Left to Right or from Right to Left.
Example: Operator Associativity
100.0 6 0 512
Division Operators allow you to divide two numbers and return a quotient, i.e., the first number or number at the left is divided by the second number or number at the right and returns the quotient.
There are two types of division operators:
(i) Float division:
The quotient returns by this operator is always a float number, no matter if two numbers are integer. For example:
>>>5/5 1.0 >>>10/2 5.0 >>>-10/2 -5.0 >>>20.0/2 10.0
(ii) Integer division( Floor division):
The quotient returned by this operator is dependent on the argument being passed. If any of the numbers is float, it returns output in float. It is also known as Floor division because, if any number is negative, then the output will be floored. For example:
>>>5//5 1 >>>3//2 1 >>>10//3 3
Consider the below statements in Python.
The first output is fine, but the second one may be surprised if we are coming Java/C++ world. In Python, the “//” operator works as a floor division for integer and float arguments. However, the division operator ‘/’ returns always a float value.
Note: The “//” operator is used to return the closest integer value which is less than or equal to a specified expression or value. So from the above code, 5//2 returns 2. You know that 5/2 is 2.5, and the closest integer which is less than or equal is 2[5//2].( it is inverse to the normal maths, in normal maths the value is 3).
The real floor division operator is “//”. It returns the floor value for both integer and floating-point arguments.
2 -3 2.0 -3.0
See this for example.
Ternary operators are also known as conditional expressions are operators that evaluate something based on a condition being true or false. It was added to Python in version 2.5.
It simply allows testing a condition in a single line replacing the multiline if-else making the code compact.
[on_true] if [expression] else [on_false]
- Simple Method to use ternary operator:
- Direct Method by using tuples, Dictionary, and lambda
10 10 10
- Ternary operator can be written as nested if-else:
The above approach can be written as:
b is greater than a
- To use print function in ternary operator be like:-
Example: Find the Larger number among 2 using ternary operator in python3
7 is Greater
- First the given condition is evaluated (a < b), then either a or b is returned based on the Boolean value returned by the condition
- Order of the arguments in the operator is different from other languages like C/C++ (See C/C++ ternary operators).
- Conditional expressions have the lowest priority amongst all Python operations.
Method used prior to 2.5 when the ternary operator was not present
In an expression like the one given below, the interpreter checks for the expression if this is true then on_true is evaluated, else the on_false is evaluated.
'''When condition becomes true, expression [on_false] is not executed and value of "True and [on_true]" is returned. Else value of "False or [on_false]" is returned. Note that "True and x" is equal to x. And "False or x" is equal to x. ''' [expression] and [on_true] or [on_false]
Note : The only drawback of this method is that on_true must not be zero or False. If this happens on_false will be evaluated always. The reason for that is if the expression is true, the interpreter will check for the on_true, if that will be zero or false, that will force the interpreter to check for on_false to give the final result of the whole expression.