# Python Operator – Types of Operators in Python

## Python Operator – Objective

In this **Python Operator** tutorial, we will discuss what is an operator in Python Programming Language. On the other hand, we will learn different types of Python Operators: Arithmetic, Relational, Assignment, Logical, Membership, Identity, and **Bitwise Operators** with their syntax and examples.

Python operator is a symbol that performs an operation on one or more operands. An operand is a variable or a value on which we perform the operation.

Before starting with operators in python, let us revise **the basics of Python.**

So, let’s start the Python Operator Tutorial.

## Introduction to Python Operator

Python Operator falls into 7 categories:

- Python Arithmetic Operator
- Python Relational Operator
- Python Assignment Operator
- Python Logical Operator
- Python Membership Operator
- Python Identity Operator
- Python Bitwise Operator

**It is recommended to check the Python master guide before we start with the operator in Python. **

## Python Arithmetic Operator

These Python arithmetic operators include Python operators for basic mathematical operations.

**a. Addition(+)**

Adds the values on either side of the operator.

>>> 3+4

Output: 7

**CHECK YOUR KNOWLEDGE – How to use + Operator for concatenation?**

**Comment, if you know the answer, else check the article – Frequently asked Python Interview Questions**

**b. Subtraction(-)**

Subtracts the value on the right from the one on the left.

>>> 3-4

Output: -1

**c. Multiplication(*) **

Multiplies the values on either side of the operator.

>>> 3*4

Output: 12

**d. Division(/)**

Divides the value on the left by the one on the right. Notice that division results in a floating-point value.

>>> 3/4

Output: 0.75

**e. Exponentiation(**)**

Raises the first number to the power of the second.

>>> 3**4

Output: 81

**f. Floor Division(//)**

Divides and returns the integer value of the quotient. It dumps the digits after the decimal.

>>> 3//4 >>> 4//3

Output: 1

>>> 10//3

Output: 3

**g. Modulus(%)**

Divides and returns the value of the remainder.

>>> 3%4

Output: 3

>>> 4%3

Output: 1

>>> 10%3

Output: 1

>>> 10.5%3

Output: 1.5

If you face any query in Python Operator with examples, ask us in the comment.

## Python Relational Operator

Let’s see **Python Relational Operator**.

**Relational Python Operator** carries out the comparison between operands. They tell us whether an operand is greater than the other, lesser, equal, or a combination of those.

**a. Less than(<)**

This operator checks if the value on the left of the operator is lesser than the one on the right.

>>> 3<4

Output: True

**b. Greater than(>)**

It checks if the value on the left of the operator is greater than the one on the right.

>>> 3>4

Output: False

**c. Less than or equal to(<=)**

It checks if the value on the left of the operator is lesser than or equal to the one on the right.

>>> 7<=7

Output: True

**d. Greater than or equal to(>=)**

It checks if the value on the left of the operator is greater than or equal to the one on the right.

>>> 0>=0

Output: True

**e. Equal to(= =)**

This operator checks if the value on the left of the operator is equal to the one on the right. 1 is equal to the Boolean value True, but 2 isn’t. Also, 0 is equal to False.

>>> 3==3.0

Output: True

>>> 1==True

Output: True

>>> 7==True

Output: False

>>> 0==False

Output: True

>>> 0.5==True

Output: False

**DO YOU KNOW – “****Google has declared Python as one of the official programming languages it uses.”**

**What are you waiting for? Start learning Python now with DataFlair’s self-paced Python training**

**f. Not equal to(!=)**

It checks if the value on the left of the operator is not equal to the one on the right. The Python operator <> does the same job, but has been abandoned in Python 3.

When the condition for a relative operator is fulfilled, it returns True. Otherwise, it returns False. You can use this return value in a further statement or expression.

>>> 1!=1.0

Output: False

>>> -1<>-1.0

#This causes a syntax error

## Python Assignment Operator

Assignment Python Operator explained –

An assignment operator assigns a value to a variable. It may manipulate the value by a factor before assigning it. We have 8 assignment operators- one plain, and seven for the 7 arithmetic python operators.

**a. Assign(=)**

Assigns a value to the expression on the left. Notice that = = is used for comparing, but = is used for assigning.

>>> a=7 >>> print(a)

Output: 7

**b. Add and Assign(+=)**

Adds the values on either side and assigns it to the expression on the left. a+=10 is the same as a=a+10.

The same goes for all the next assignment operators.

>>> a+=2 >>> print(a)

Output: 9

**c. Subtract and Assign(-=)**

Subtracts the value on the right from the value on the left. Then it assigns it to the expression on the left.

>>> a-=2 >>> print(a)

Output: 7

**d. Divide and Assign(/=)**

Divides the value on the left by the one on the right. Then it assigns it to the expression on the left.

>>> a/=7 >>> print(a)

Output: 1.0

**e. Multiply and Assign(*=)**

Multiplies the values on either sides. Then it assigns it to the expression on the left.

>>> a*=8 >>> print(a)

Output: 8.0

DON’T MISS!! Top Python Projects with Source Code

**f. Modulus and Assign(%=)**

Performs modulus on the values on either side. Then it assigns it to the expression on the left.

>>> a%=3 >>> print(a)

Output: 2.0

**g. Exponent and Assign(**=)**

Performs exponentiation on the values on either side. Then assigns it to the expression on the left.

>>> a**=5 >>> print(a)

Output: 32.0

**h. Floor-Divide and Assign(//=)**

Performs floor-division on the values on either side. Then assigns it to the expression on the left.

>>> a//=3 >>> print(a)

Output: 10.0

This is one of the important Python Operator.

**Know more about Python Namespace and Variable Scope**

## Python Logical Operator

These are conjunctions that you can use to combine more than one condition. We have three Python logical operator – and, or, and not that come under python operators.

**a. and**

If the conditions on both the sides of the operator are true, then the expression as a whole is true.

>>> a=7>7 and 2>-1 >>> print(a)

Output: False

**b. or**

The expression is false only if both the statements around the operator are false. Otherwise, it is true.

>>> a=7>7 or 2>-1 >>> print(a)

Output: True

‘and’ returns the first False value or the last value; ‘or’ returns the first True value or the last value

>>> 7 and 0 or 5

Output: 5

**c. not**

This inverts the **Boolean value** of an expression. It converts True to False, and False to True. As you can see below, the Boolean value for 0 is False. So, not inverts it to True.

>>> a=not(0) >>> print(a)

Output: True

## Membership Python Operator

These operators test whether a value is a member of a **sequence**. The sequence may be a **list**, a **string**, or a **tuple**. We have two membership python operators- ‘in’ and ‘not in’.

**a. in**

This checks if a value is a member of a sequence. In our example, we see that the string ‘fox’ does not belong to the list pets. But the string ‘cat’ belongs to it, so it returns True. Also, the string ‘me’ is a substring to the string ‘disappointment’. Therefore, it returns true.

>>> pets=[‘dog’,’cat’,’ferret’] >>> ‘fox’ in pets

Output: False

>>> ‘cat’ in pets

Output: True

>>> ‘me’ in ‘disappointment’

Output: True

**b. not in**

Unlike ‘in’, ‘not in’ checks if a value is not a member of a sequence.

>>> ‘pot’ not in ‘disappointment’

Output: True

In doubt yet in any Python operator with examples? Please comment.

**Don’t you know about the trending Python Project at DataFlair? Here it is – Gender and Age Detection with Python**

## Python Identity Operator

Let us proceed towards identity Python Operator.

These operators test if the two operands share an identity. We have two identity operators- ‘is’ and ‘is not’.

**a. is**

If two operands have the same identity, it returns True. Otherwise, it returns False. Here, 2 is not the same as 20, so it returns False. Also, ‘2’ and “2” are the same. The difference in quotes does not make them different. So, it returns True.

>>> 2 is 20

Output: False

>>> ‘2’ is “2”

Output: True

**b. is not**

2 is a number, and ‘2’ is a string. So, it returns a True to that.

>>> 2 is not ‘2’

Output: True

## Python Bitwise Operator

Let us now look at Bitwise Python Operator.

On the operands, these operate bit by bit.

**a. Binary AND(&)**

It performs bit by bit AND operation on the two values. Here, binary for 2 is 10, and that for 3 is 11. &-ing them results in 10, which is binary for 2. Similarly, &-ing 011(3) and 100(4) results in 000(0).

>>> 2&3

Output: 2

>>> 3&4

Output: 0

**b. Binary OR(|)**

It performs bit by bit OR on the two values. Here, OR-ing 10(2) and 11(3) results in 11(3).

>>> 2|3

Output: 3

**ENJOYING NETFLIX??? Python developers are the reason for its popularity. **

**Check out how Python is used at Netflix?**

**c. Binary XOR(^)**

It performs bit by bit XOR(exclusive-OR) on the two values. Here, XOR-ing 10(2) and 11(3) results in 01(1).

>>> 2^3

Output: 1

**d. Binary One’s Complement(~)**

It returns the one’s complement of a number’s binary. It flips the bits. Binary for 2 is 00000010. Its one’s complement is 11111101. This is binary for -3. So, this results in -3. Similarly, ~1 results in -2.

>>>~-3

Output: 2

Again, one’s complement of -3 is 2.

**e. Binary Left-Shift(<<)**

It shifts the value of the left operand the number of places to the left that the right operand specifies. Here, binary of 2 is 10. 2<<2 shifts it two places to the left. This results in 1000, which is binary for 8.

>>> 2<<2

Output: 8

**f. Binary Right-Shift(>>)**

It shifts the value of the left operand the number of places to the right that the right operand specifies. Here, binary of 3 is 11. 3>>2 shifts it two places to the right. This results in 00, which is binary for 0. Similarly, 3>>1 shifts it one place to the right. This results in 01, which is binary for 1.

>>> 3>>2 >>> 3>>1

Output: 1

This was all about the Python Operator Tutorial.

## Conclusion – Python Operator

Finally, in this lesson, we looked at seven different classes of Python operator. We executed them in the Python Shell(IDLE) to find out how they work. We can further use this operator in conditions, and to combine them. Go ahead and practice some combinations.

Hope you like the Python Operator tutorial by DataFlair. If you have any queries on Python operator, please leave a comment.

What Next? Advanced Python Project to practice your learning

You forgot to mention modulus % operator in arithmetic operators section.

Thank you

Dr Nagendra

hod_it@vishnu.edu.in

Thank You

Dr. Nagendra for taking the time to share the important information with us about “Python Operators”.

Soon we will update our content.

How do you reconcile

>>> test_dictionary = {1:’a’, 2:’b’, 3:’c’, 4:’d’}

>>> ‘d’ in test_dictionary

False

>>>

with “This checks if a value is a member of a sequence.”.

‘d’ seems to be a value in the sequence!

Hi Nick,

We are happy to help you!

For a Python dictionary, this will only test if a certain key is a member.

In your example, ‘d’ is a value in the dictionary, but isn’t a key. The following code would return True:

>>> 4 in test_dictionary

True

For what you want, you can try this-

>>> ‘d’ in test_dictionary.values()

True”

We Can Also Refer Our Blog on Python Dictionaries

Maybe it would work if you use test_dictionary.values

Yes Tejas, it does.

As we mentioned in our response above, searching in test_dictionary.values() gives us whether ‘d’ exists in it as a value.

Hope it helps.

Thank you for visiting Data Flair

Hello Team,

Your both logical and, or statements are wrong please check them

Hi Mukesh,

Thank you for pointing out the ambiguity in the text of Python Operator. We have made the corrections.

Hope it makes more sense now!

The != operator example looks incorrect to me?

>>> 1!=-1.0

False

one is not equal to minus one, so must be a true statement?

Peter

“1 and 1” gives 1 makes sense. But 20 and 30 gives 30. What’s the logic behind it?

With non zero numbers, number at right will be output. If any one of the numbers is zero then zero will be output

Thank you, Shashank for giving this superb suggestion. Hope you have read our Python Operators blog. It seems that you have a good interest in Python. Check our latest blogs on Python. Your feedback means a lot to us.

Also, tell us if you need any new blog on Python. We will definitely get it to you.

Hello Shrey,

Shashank is correct! Between two numbers joined by an ‘and’, if the one on the left is 0, it doesn’t evaluate the one on the right. However, if non-zero, it does evaluate the one on the right, and returns the same. This explains the following pieces of code:

>>> 0 and 0

0

>>> 0 and 1

0

>>> 1 and 0

0

>>> 1 and 2

2

>>> 2 and 1

1

>>> 1 and 1

1

>>> 20 and 30

30

Hope this clears it for you!

Keep connected with us.

Sir, you are providing extraordinary content.

My humble request is can you please provide this entire data in a pdf format.

I sent my email id to you.

If pdf is available you can send it to my mail.

Thank You

256 is 254+2, 257 is 255+2, 256 is 256, 257 is 257 # (True, False, True, True)

‘abc’ is ‘ab’+’c’, ‘abc’ is ‘ab’+’c’, ‘ab-c’ is ‘ab’+’-c’, ‘ab-c’ is ‘ab’+’-c’ # (True, True, False, False)

# why o/p is different for 256 is 254+2, 257 is 255+2 and same for string

# if so, why should we use is operator with numbers and strings

Hi Damodar,

There seems to be a problem with the outputs you mentioned. 257 is 255+2 certainly returns True.

>>> 257 is 255+2

True

Thanks for reading

[256 is 254+2, 257 is 255+2, 256 is 256, 257 is 257] actually gives [True, False, True, True]

Can you please try this and then come out with the rationale behind it?

Got the answer!

From documentation,

The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value.

So basically they check if both are pointing to same memory location or not. Python keeps some int (-5 to 256) mostly already in memory and whenever these numbers are used another instance is not created but the same object is used. Hence, is operated to True for these while false for others.

To get a hold, try this:

a = 256

b= 254+2

print(id(a),id(b))

and then

a= 257

b = 255+2

print(id(a),id(b))

and see how different instances are created for numbers beyond 256.

Moral of the story for int comparisions use == or != instead of is or is not operator!!

Got the answer!

From documentation,

The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value.

So basically they check if both are pointing to same memory location or not. Python keeps some int (-5 to 256) mostly already in memory and whenever these numbers are used another instance is not created but the same object is used. Hence, is operated to True for these while false for others.

To get a hold, try this:

a = 256

b= 254+2

print(id(a),id(b))

and then

a= 257

b = 255+2

print(id(a),id(b))

and see how different instances are created for numbers beyond 256.

Moral of the story for int comparisions use == or != instead of is or is not operator!!

Got the answer!

From documentation,

The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value.

So basically they check if both are pointing to same memory location or not. Python keeps some int (-5 to 256) mostly already in memory and whenever these numbers are used another instance is not created but the same object is used. Hence, is operated to True for these while false for others.

To get a hold, try this:

a = 256

b= 254+2

print(id(a),id(b))

and then

a= 257

b = 255+2

print(id(a),id(b))

and see how different instances are created for numbers beyond 256. Same is true for common alphabets

Moral of the story for int comparisions use == or != instead of is or is not operator!!

And operator :

Return the first false value ; if not found return last

3 and 5 and 6 and 7: 7

0 and 3 and 9 and 10: 0

Or operator :

Returns the first true value; if not found returns last

3 or 5 or 0 or 10 : 3

0 or 5 or 6 or 7 : 5

Hello, Ravi

Absolutely. We have implemented this concept in our tutorial on ternary operators in Python, you check it in our sidebar.

-21%2what is the output and why

Hello, Vaishnavi

Thanks for connecting with DataFlair, the output of your query will be 1. Because even though it’s negative, 2 divides -21 by 11 and leaves a positive remainder of 1.

divmod(-21,2) is (-11, 1)

If you still don’t get it then revise Modulus Operator in Python.

Hope, it helps!

what does the ‘ mean in python? as in:

y = int(3 * ‘4’)

Hey Anna,

When we put 4 in quotes, it means it is a string and not an integer. Multiplying it by 3 gives us the string ‘444’. And then, calling int() on it gives us the integer 444.

Hope, it helps!

Hello,

I couldnt get this “7 and 0 or 5″ its 5, could you explain a bit?

in the above examples, i found a little mistake ” 1!=-1.0″ its written “false”, but its “true”

Thank you.

Hello Semih, ‘

Let’s break it down.

7 and 0.

7 is True, but this is ‘and’, so it returns the second value, which is 0.

Now, 0 or 5.

0 is False, but since we have ‘or’, it returns the second value, which is 5.

Hope, it helps!

9%4 is 1

-9%4 is 3

why is the difference?

Hi Naveen

9%4 is 1- this is simple; 4 divides 9 by 2 and leaves a remainder of 1.

When we talk of -9%4, -12 perfectly divides 4, and -12 is at a distance of 3 from -9.

Hope, it helps!

1!=-1.0

Is True not False

There is no problem with output. I have check above and found

257 is 255+2 is False.

But 3 is 2 + 1 is True.

Because ‘is’ operator check if both objects are the same. In the first case, both are not the same.

But is the second case both are the same. Python use cache concept for a smaller object to load data faster so it is possible 257 is 255+2 would be true

3//4 is equal to 0, not to 1

h. Floor divide and Assign (//=), the answer should be 10 and not 10.0.

Please correct it.

what does the # mean in python?

Please correct the output in the example for ” // “(floor division)

Example shown as:

3//4

4//3

output:1

Should either give an output for 3//4, which is 0

or should remove tat example

Can u explain detail in bitwise operators