## Operators

We will briefly take a look at the operators and their usage:

### Tip

You can evaluate the expressions given in the examples using the interpreter interactively. For example, to test the expression `2 + 3`, use the interactive Python interpreter prompt:

```
>>> 2 + 3
5
>>> 3 * 5
15
>>>

```

Table 5.1. Operators and their usage

OperatorNameExplanationExamples
+Plus Adds the two objects `3 + 5` gives `8`. `'a' + 'b'` gives `'ab'`.
-Minus Either gives a negative number or gives the subtraction of one number from the other `-5.2` gives a negative number. `50 - 24` gives `26`.
*Multiply Gives the multiplication of the two numbers or returns the string repeated that many times. `2 * 3` gives `6`. `'la' * 3` gives `'lalala'`.
**Power Returns x to the power of y `3 ** 4` gives `81` (i.e. `3 * 3 * 3 * 3`)
/Divide Divide x by y `4/3` gives `1` (division of integers gives an integer). `4.0/3` or `4/3.0` gives `1.3333333333333333`
//Floor Division Returns the floor of the quotient `4 // 3.0` gives `1.0`
%Modulo Returns the remainder of the division `8%3` gives `2`. `-25.5%2.25` gives `1.5` .
<<Left Shift Shifts the bits of the number to the left by the number of bits specified. (Each number is represented in memory by bits or binary digits i.e. 0 and 1) `2 << 2` gives `8`. - `2` is represented by `10` in bits. Left shifting by 2 bits gives `1000` which represents the decimal `8`.
>>Right Shift Shifts the bits of the number to the right by the number of bits specified. `11 >> 1` gives `5` - `11` is represented in bits by `1011` which when right shifted by 1 bit gives `101` which is nothing but decimal `5`.
&Bitwise AND Bitwise AND of the numbers `5 & 3` gives `1`.
|Bit-wise OR Bitwise OR of the numbers `5 | 3` gives `7`
^Bit-wise XOR `5 ^ 3` gives `6`
~Bit-wise invert The bit-wise inversion of x is -(x+1) `~5` gives `-6`.
<Less Than Returns whether x is less than y. All comparison operators return 1 for true and 0 for false. This is equivalent to the special variables `True` and `False` respectively. Note the capitalization of these variables' names. `5 < 3` gives `0` (i.e. `False`) and `3 < 5` gives `1` (i.e. `True`). Comparisons can be chained arbitrarily: 3 < 5 < 7 gives `True`.
>Greater Than Returns whether x is greater than y `5 < 3` returns `True`. If both operands are numbers, they are first converted to a common type. Otherwise, it always returns `False`.
<=Less Than or Equal To Returns whether x is less than or equal to y `x = 3; y = 6; x <= y` returns `True`.
>=Greater Than or Equal To Returns whether x is greater than or equal to y x = 4; y = 3; x >= 3 returns `True`.
==Equal To Compares if the objects are equal `x = 2; y = 2; x == y` returns `True`. `x = 'str'; y = 'stR'; x == y` returns `False`. `x = 'str'; y = 'str'; x == y` returns `True`.
!=Not Equal To Compares if the objects are not equal `x = 2; y = 3; x != y` returns `True`.
notBoolean NOT If x is `True`, it returns `False`. If x is `False`, it returns `True`. `x = True; not y` returns `False`.
andBoolean AND `x and y` returns `False` if x is `False`, else it returns evaluation of y `x = False; y = True; x and y` returns `False` since x is False. In this case, Python will not evaluate y since it knows that the value of the expression will has to be false (since x is False). This is called short-circuit evaluation.
orBoolean OR If x is `True`, it returns True, else it returns evaluation of y `x = True; y = False; x or y` returns `True`. Short-circuit evaluation applies here as well.