# Python operators

This tutorial will introduce you to the operators of the Python programming language. You’ll learn about arithmetic, logical, and bitwise operators, as well as comparison, assignment, membership, and identity operators and their syntax. All of this will be illustrated with examples. An operator in Python is a character that performs an operation on one or more operands. The operand is the variable or value on which the operation is performed.

## Introduction to Python Operators

Python operators come in 7 types:

• Arithmetic operators
• Comparison Operators
• Assignment operators
• Boolean operators
• Identity operators
• Identity operators
• Bit operators

## Python Arithmetic Operators

This type includes operators for performing basic arithmetic operations.

Adds a value on either side of the operator. Example:

``````>>> 3+4
``````
``````7
``````

### Subtraction (-)

Subtracts the value in the right side from the value in the left side. Example:

``````>>> 3-4
``````
``````-1
``````

### Multiplication (*)

Multiplies values on both sides of the operator. Example:

``````>>> 3*4
``````
``````12
``````

### Division (/)

Divides the left side value by the right side value. The data type of the division result is a floating point number. Example:

``````>>> 3/4
``````
``````0.75
``````

### Exponentiation (**)

Expands the first number to the power of the second number. Example:

``````>>> 3**4
``````
``````81
``````

### Division without a remainder (//)

Performs division and returns the integer value of the quotient, stripping the digits after the decimal point. Example:

``````>>> 4//3
``````
``````1
``````
``````>>> 10//3
``````
``````3
``````

### Modulo division (remainder of division) (%)

Performs division and returns the remainder. Example:

``````>>> 3%4
``````
``````3
``````
``````>>> 4%3
``````
``````1
``````
``````>>> 10%3
``````
``````1
``````
``````>>> 10.5%3
``````
``````1.5
``````

## Comparison Operators

Comparison operators in Python compare operands. They tell you whether one is greater than the other, less than, equal to, or both.

### Less (<)

This operator tests whether the value on the left is less than the value on the right. Example:

``````>>> 4<3
``````
``````False
``````

### More (>)

Checks if the value on the left is greater than the value on the right. Example:

``````>>> 4>3
``````
``````True
``````

### Less than or equal to (<=)

Checks whether the left-hand side is less than or equal to the right-hand side. Example:

``````>>> 7<=7
``````
``````True
``````

### More or equal (>=)

Checks whether the left-hand side is greater than or equal to the right-hand side. Example:

``````>>> 0>=0
``````
``````True
``````

### Equals (==)

This operator checks to see if the value on the left is equal to the value on the right. `1` equals Boolean `True` and 2 (double) does not. `0` equals `False`. Example:

``````>>> 3==3.0
``````
``````True
``````
``````>>> 1==True
``````
``````True
``````
``````>>> 7==True
``````
``````False
``````
``````>>> 0==False
``````
``````True
``````
``````>>> 0.5==True
``````
``````False
``````

### Not equal (!=)

Checks to see if the value on the left equals the value on the right. The operator performs the same task, but was removed in Python 3. When the condition is met, it returns `True`. Otherwise, it returns `False`. This return value can be used in subsequent instructions and expressions. Example:

``````>>> 1!=1.0
``````
``````False
``````
``````>>> 1==True # This causes SyntaxError
``````

## Assignment Operators

The assignment operator assigns a value to a variable. It can manipulate the value before the assignment. There are 8 assignment operators: 1 simple and 7 using arithmetic operators.

### Assignment (=)

Assigns a value to the right of the left hand side. It is worth noting that `==` is used for comparison and `=` is used for assignment. Example:

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

### Addition and assignment (+=)

Sums the value of both sides and assigns it to the expression on the left. `a += 10` is the same as `a = a + 10`. The same goes for all other assignment operators. Example:

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

### Subtraction and assignment (-=)

Subtracts the value on the right from the left and assigns it to the expression on the left. Example:

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

### Division and assignment (/=)

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

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

### Multiplication and Assignment (*=)

Multiplies the values of both sides. Then assigns the right to the left. Example:

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

### Modulo division and assignment (%=)

Performs division modulo for both parts. Assigns the result to the left part. Example:

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

### Expanding and assigning (**=)

Multiplies the left part by the value of the right part. Then assigns the value of the left part. Example:

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

### Division with a remainder and assignment (//=)

Performs division with a remainder and assigns the result to the left side. Example:

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

This is one of the important operators of Python

## Python logical operators

These are conjunctions that allow you to combine multiple conditions. There are only three operators in Python: `and`, `or`, and `not`.

### And

If the conditions on both sides of the `and` operator are true, then the entire expression is considered true. Example:

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

### Or

An expression is false if both operands on both sides are false. If at least one of them is true, then the whole expression is true. Example:

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

### Not (not)

This operator inverts the boolean values of an expression. `True` turns into `False` and vice versa. In the example below the boolean value `0` is `False`. Therefore it is converted to `True`. Example:

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

### Accessory operators

These operators check whether a value is part of a sequence. A sequence can be a list, a string, or a tuple. There are only two such operators: `in` and `not in`.

### In (in)

Checks if the value is a member of a sequence. In this example, you can see that the string `fox` is not in the list of pets. But `cat` is, so it returns `True`. Also the string `me` is a substring of `the` sequence. Therefore it will return `True`. Example:

``````>>> pets=['dog','cat', 'ferret']
>>> 'fox' in pets
``````
``````False
``````
``````>>> 'cat' in pets
``````
``````True
``````
``````>>> 'me' in 'disappointment'
``````
``````True
``````

### No in (not in)

This operator checks if a value is NOT a member of a sequence. Example:

``````>>> 'pot' not in 'disappointment'
``````
``````True
``````

### Identity operators

These operators check if the operands are the same (if they occupy the same position in memory).

### This (is)

If the operands are identical, it returns `True`. Otherwise, it returns `False`. Here `2` is not `20`, so it will return `False`. But `'2'` is the same as `'2`‘. The different quotes do not change the objects themselves, so `True` will be returned. Example:

``````>>> 2 is 20
``````
``````False
``````
``````>>> '2' is "2"
``````
``````True
``````

### It is not (is not)

`2` is a number, and `'2'` is a string. Therefore, it will return `True`. Example:

``````>>> 2 is not '2'
``````
``````True
``````

## Python bit operators

These operators work on operands bit by bit.

### Binary AND (&)

Performs a bitwise `and` operation on two values. Here, binary `2` is `10` and `3` is `11`. The result of a bitwise `and` is `10` – binary `2`. A bitwise `and` over `011`(3) and `100`(4) produces the result `000`(0). Example:

``````>>> 2&3
``````
``````2
``````
``````>>> 3&4
``````
``````0
``````

### Binary OR (|)

Performs a bitwise `or` operation on two values. Here `or` for `10`(2) and `11`(3) returns `11`(3). Example:

``````>>> 2|3
``````
``````3
``````

### Binary OR NO (^)

Performs a bitwise `xor` (exclusive or) operation on two values. Here the result of OR NOT for `10`(2) and `11`(3) is `01`(1). Example:

``````>>> 2^3
``````
``````1
``````

### Inverting operator (~)

This operator returns inverted binary numbers. In other words, it flips bits. Bit `2` is `00000010`. Its inverted version is `11111101`. It is a binary `-3`. Therefore, the result is `-3`. In a similar way, `~1` equals `-2`. Example:

``````>>> ~-3
``````
``````2
``````

Once again, an inverted `-3` is a `2`.

### Binary shift to the left (<<)

It shifts the value of the left operand to the position that is specified on the right. Thus, a binary `2` is `10`. `2 << 2` will move the value two positions to the left and come out `1000` is binary `8`. Example:

``````>>> 2<<2
``````
``````8
``````

### Binary shift to the right (>>)

Shifts the value of the left operator to the position specified on the right. For example, a binary `3` is `11`. `3 >> 2` will shift the value two positions to the right. The result is `00`, which is `0`. `3 >> 1` will shift one position to the right, and the result is `01` – binary `1`. Example:

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

## Conclusions

This lesson has covered all 7 types of Python operators. An example in the IDE has been given for each. You need to continue working with them, using them in conditional constructions and combining them to understand how they work.