2018-10-04 13:47:55 +00:00
---
title: Basic Operators
---
## Basic Operators
2018-10-22 19:01:37 +00:00
Operators are symbols that tell the interpreter to do a specific operation (e.g. arithmetic, comparison, logical, etc.)
2018-10-04 13:47:55 +00:00
The different types of operators in Python are listed below:
1. Arithmetic Operators
2018-10-15 13:59:11 +00:00
2. Comparison (Relational) Operators
2018-10-04 13:47:55 +00:00
3. Bitwise Operators
4. Assignment Operators
5. Logical Operators
6. Membership Operators
7. Identity Operators
#### Arithmetic Operators
An arithmetic operator takes two operands as input, performs a calculation and returns the result.
2018-10-22 19:01:37 +00:00
Consider the expression, < b > “a = 2 + 3”</ b > . Here, `2` and `3` are the < i > operands</ i > and `+` is the < i > arithmetic operator</ i > . The result of the operation is stored in the variable a. (This is because `=` is an assignment operator. See below.)
2018-10-04 13:47:55 +00:00
< table style = "width:100%" >
< tr >
< th > Operator< / th >
< th > Description< / th >
< th > Usage< / th >
< / tr >
< tr >
< td align = "center" > +< / td >
< td > Performs Addition on the operands< / td >
< td > 12 + 3 = 15< / td >
< / tr >
< tr >
< td align = "center" > -< / td >
< td > Performs Subtraction on the operands. < br > Subtracts the right operand from the left operand< / td >
< td > 12 - 3 = 9< / td >
< / tr >
< tr >
< td align = "center" > *< / td >
< td > Performs Multiplication on the operands< / td >
< td > 12 * 3 = 36< / td >
< / tr >
< tr >
< td align = "center" > /< / td >
< td > Performs Division on the operands. < br > Divides the left operand by the right operand< / td >
< td > 12 / 3 = 4< / td >
< / tr >
2018-10-11 23:00:38 +00:00
< tr >
< td > Note: When two integers are used, the result differs between Python 2 and Python 3.< / td >
< td > 5 / 2 = 2 in Python 2< / td >
< td > 5 / 2 = 2.5 in Python 3< / td >
< / tr >
2018-10-04 13:47:55 +00:00
< tr >
< td align = "center" > %< / td >
< td > Performs a Modulus on the operands. < br > Returns the remainder obtained while dividing the left operand by the right operand< / td >
< td > 16 % 3 = 1< / td >
< / tr >
< tr >
< td align = "center" > **< / td >
< td > Performs an Exponentiation operation. < br > The left operand is raised to the power of right operand< / td >
< td > 12 ** 3 = 1728</ td >
< / tr >
< tr >
< td align = "center" > //< / td >
< td > Performs a Floor Division operation. < br > Returns the integral part of the quotient obtained after diving the left operand by the right operand< / td >
< td > 18 // 5 = 3< / td >
< / tr >
< / table >
2018-11-02 14:41:16 +00:00
Notes:
- To get the result in floating type, one of the operands must also be of float type.
- Python arithmetic operations follow the PEMDAS order of precedence.
2018-10-04 13:47:55 +00:00
2018-10-15 13:59:11 +00:00
#### Comparison (Relational) Operators
2018-10-04 13:47:55 +00:00
2018-10-22 19:01:37 +00:00
A comparison or relational operator is used to compare two operands to determine the relationship between them. It returns a boolean value based on the condition.
2018-10-04 13:47:55 +00:00
< table style = "width:100%" >
< tr >
< th > Operator< / th >
< th > Description< / th >
< th > Usage< / th >
< / tr >
< tr >
< td align = "center" > >< / td >
< td > Returns True if the left operand is greater than the right operand< br > Returns False otherwise< / td >
< td > 12 > 3 returns True< / td >
< / tr >
< tr >
< td align = "center" > < < / td >
< td > Returns True if the right operand is greater than the left operand< br > Returns False otherwise< / td >
< td > 12 < 3 returns False < / td >
< / tr >
< tr >
< td align = "center" > ==< / td >
< td > Returns True if both the operands are equal< br > Returns False otherwise< / td >
< td > 12 == 3 returns False< / td >
< / tr >
< tr >
< td align = "center" > >=< / td >
< td > Returns True if the left operand is greater than or equal to the right operand< br > Returns False otherwise< / td >
< td > 12 >= 3 returns True< / td >
< / tr >
< tr >
< td align = "center" > < =< / td >
< td > Returns True if the right operand is greater than or equal to the left operand< br > Returns False otherwise< / td >
< td > 12 < = 3 returns False< / td >
< / tr >
< tr >
< td align = "center" > !=< / td >
< td > Returns True if both the operands are not equal< br > Returns False otherwise< / td >
< td > 12 != 3 returns True< / td >
< / tr >
< / table >
#### Bitwise Operators
2018-10-22 19:01:37 +00:00
A bitwise operator performs operations on the operands bit by bit.
2018-10-04 13:47:55 +00:00
2018-10-22 19:01:37 +00:00
Consider a = 2 (in binary notation, 10) and b = 3 (in binary notation, 11) for the below usages.
2018-10-04 13:47:55 +00:00
< table style = "width:100%" >
< tr >
< th > Operator< / th >
< th > Description< / th >
< th > Usage< / th >
< / tr >
< tr >
< td align = "center" > & < / td >
< td > Performs bitwise AND operation on the operands< / td >
< td > a & b = 2< br > Binary: 10 & 11 = 10< / td >
< / tr >
< tr >
< td align = "center" > |< / td >
< td > Performs bitwise OR operation on the operands< / td >
< td > a | b = 3< br > Binary: 10 | 11 = 11< / td >
< / tr >
< tr >
< td align = "center" > ^< / td >
< td > Performs bitwise XOR operation on the operands< / td >
< td > a ^ b = 1< br > Binary: 10 ^ 11 = 01< / td >
< / tr >
< tr >
< td align = "center" > ~< / td >
< td > Performs bitwise NOT operation on the operand< br > Flips every bit in the operand< / td >
< td > ~a = -3< br > Binary: ~(00000010) = (11111101)< / td >
< / tr >
< tr >
< td align = "center" > >>< / td >
< td > Performs a bitwise right shift. Shifts the bits of left operand, right by the number of bits specified as the right operand < / td >
2018-10-31 02:41:47 +00:00
< td > a >> b = 0< br > Binary: 00000010 >> 00000011 = 00000000< / td >
2018-10-04 13:47:55 +00:00
< / tr >
< tr >
< td align = "center" > < < < / td >
< td > Performs a bitwise left shift. Shifts the bits of left operand, left by the number of bits specified as the right operand < / td >
< td > a < < b = 16 < br > Binary: 00000010 < < 00000011 = 00001000 < / td >
< / tr >
< / table >
#### Assignment Operators
2018-10-22 19:01:37 +00:00
An assignment operator is used to assign values to a variable. This is usually combined with other operators (like arithmetic, bitwise, etc.) where the operation is performed on the operands and the result is assigned to the left operand.
2018-10-04 13:47:55 +00:00
Consider the following examples,
< br >
< b > a = 18</ b > . Here `=` is an assignment operator, and the result is stored in variable a.
< br >
< b > a += 10</ b > . Here `+=` is an assignment operator, and the result is stored in variable a. This is same as a = a + 10.
< table style = "width:100%" >
< tr >
< th > Operator< / th >
< th > Usage< / th >
< / tr >
< tr >
< td align = "center" > =< / td >
< td > a = 5. The value 5 is assigned to the variable a< / td >
< / tr >
< tr >
< td align = "center" > +=< / td >
< td > a += 5 is equivalent to a = a + 5< / td >
< / tr >
< tr >
< td align = "center" > -=< / td >
< td > a -= 5 is equivalent to a = a - 5< / td >
< / tr >
< tr >
< td align = "center" > *=< / td >
< td > a *= 3 is equivalent to a = a * 3</ td >
< / tr >
< tr >
< td align = "center" > /=< / td >
< td > a /= 3 is equivalent to a = a / 3< / td >
< / tr >
< tr >
< td align = "center" > %=< / td >
< td > a %= 3 is equivalent to a = a % 3< / td >
< / tr >
< tr >
< td align = "center" > **=< / td >
< td > a ** = 3 is equivalent to a = a ** 3</ td >
< / tr >
< tr >
< td align = "center" > //=< / td >
< td > a //= 3 is equivalent to a = a // 3< / td >
< / tr >
< tr >
< td align = "center" > & =< / td >
< td > a & = 3 is equivalent to a = a & 3< / td >
< / tr >
< tr >
< td align = "center" > |=< / td >
< td > a |= 3 is equivalent to a = a | 3< / td >
< / tr >
< tr >
< td align = "center" > ^=< / td >
< td > a ^= 3 is equivalent to a = a ^ 3< / td >
< / tr >
< tr >
< td align = "center" > >>=< / td >
< td > a >>= 3 is equivalent to a = a >> 3< / td >
< / tr >
< tr >
< td align = "center" > < < =< / td >
< td > a < < = 3 is equivalent to a = a < < 3 < / td >
< / tr >
< / table >
#### Logical Operators
A logical operator is used to make a decision based on multiple conditions. The logical operators used in Python are
`and` , `or` and `not`
< table style = "width:100%" >
< tr >
< th > Operator< / th >
< th > Description< / th >
< th > Usage< / th >
< / tr >
< tr >
< td align = "center" > and< / td >
< td > Returns True if both the operands are True< br > Returns False otherwise< / td >
< td > a and b< / td >
< / tr >
< tr >
< td align = "center" > or< / td >
< td > Returns True if any one of the operands are True< br > Returns False otherwise< / td >
< td > a or b< / td >
< / tr >
< tr >
< td align = "center" > not< / td >
< td > Returns True if the operand is False< br > Returns False otherwise< / td >
< td > not a< / td >
< / tr >
< tr >
< / table >
#### Membership Operators
2018-10-22 19:01:37 +00:00
A membership operator is used to identify membership in any sequence (e.g. lists, strings, tuples).
2018-10-04 13:47:55 +00:00
< br > `in` and `not in` are membership operators
< br > `in` returns True if the specified value is found in the sequence. Returns False otherwise.
< br > `not in` returns True if the specified value is not found in the sequence. Returns False otherwise.
###### Example Usage
```py
a = [1,2,3,4,5]
#Is 3 in the list a?
print 3 in a # prints True
#Is 12 not in list a?
print 12 not in a # prints True
str = "Hello World"
#Does the string str contain World?
print "World" in str # prints True
#Does the string str contain world? (note: case sensitive)
print "world" in str # prints False
print "code" not in str # prints True
```
#### Identity Operators
An identity operator is used to check if two variables share the same memory location.
< br > `is` and `is not` are identity operators
< br > `is` returns True if the operands refer to the same object. Returns False otherwise.
< br > `is not` returns True if the operands do not refer to the same object. Returns False otherwise.
2018-10-22 19:01:37 +00:00
Please note that two values being equal does not necessarily require they be identical.
2018-10-04 13:47:55 +00:00
###### Example Usage
```py
a = 3
b = 3
c = 4
print a is b # prints True
print a is not b # prints False
print a is not c # prints True
2018-10-11 23:00:38 +00:00
x = 1
y = x
z = y
print z is 1 # prints True
print z is x # prints True
2018-11-04 12:03:25 +00:00
print y is x # prints True
2018-10-11 23:00:38 +00:00
2018-10-04 13:47:55 +00:00
str1 = "FreeCodeCamp"
str2 = "FreeCodeCamp"
print str1 is str2 # prints True
print "Code" is str2 # prints False
a = [10,20,30]
b = [10,20,30]
print a is b # prints False (since lists are mutable in Python)
```