There are three different types of numbers in Python: `int`

(integer), `float`

, and `complex`

.

```
# These are all integers
>>> x = 4
>>> y = -193394
>>> z = 0
```

```
# These are all floats
>>> x = 5.0
>>> y = -3983.2
>>> z = 0.
```

```
# This is a complex number
>>> x = 42j
>>> type(x)
<class 'complex'>
```

In Python, integers and other simple data types are just objects under the hood. That means that you can create new ones by calling methods. You can provide either a number or a string.

You’ll rarely use this syntax to declare variables in code, but you’ll need to remember it to switch your variable between different types.

```
>>> x = int(4)
>>> z = float(5.0)
```

To create a new integer from a string input, call `int()`

:

```
>>> y = int('4')
>>> y
4
>>> type(y)
<class 'int'>
```

Python also provides a `decimal`

library, which has certain benefits over the `float`

datatype. For more information, refer to the Python documentation.

Common mathematical operations can be performed on numbers in Python.

```
>>> 5 + 4
9
>>> 10 - 7
3
>>> a = 3
>>> b = 2
>>> a * b # multiplication
6
>>> a ** b # pow -- 3^2
9
>>> 5.0 / 2.0
2.5
>>> # Use parenthesis to guarantee order
>>> (2 + 2) * (3 + 5)
32
```

Know that:
- If you add a `float`

and an `int`

, the resulting type will be a `float`

.
- If you divide two `int`

s (integers), the result will be of type `float`

, unless you use the special integer division operator (`//`

)

```
>>> 3.0 + 1
4.0
>>> 6 / 3
2.0
>>> 6 // 3
2
```

Python also has several handy built-in methods for working with numbers, like `min()`

for minimum, `max()`

for maximum, and `round()`

for rounding to the nearest integer.

```
>>> min(3, 1, 2)
1
>>> max(100, 0, 5)
100
>>> round(3.1)
3
>>> round(5.9)
6
```

If you need more advanced methods, Python also offers a `math`

module in the standard library.

In Python, Booleans are of type `bool`

. Surprisingly, the boolean types `True`

and `False`

are also numbers under the hood.

`True`

is`1`

under the hood.`False`

is`0`

under the hood.

```
>>> True == 1
True
>>> False == 0
True
```

That means you can do silly things, like add two Boolean numbers together.