### 01 - 03.01 int¶

Integers are the most basic numeric type in python. Any number that does not contain a decimal point is considered as an integer and is of type `int`

.

An interesting difference between the `int`

type in python and other languages is that they are variable precision. This means that the integer computation on other languages will overflow at either $2^{31}$ or at $2^{63}$ (based on whether you have 32 bit or 64 bit CPU architecture). However in python, you can perform computation on numbers that are larger than these. (Actually the precision of a number can increase till your compute runs out of memory)

Lets test it

```
# this will crash on C
2 ** 120
```

### 01 - 03.02 float¶

Floating point numbers contain the numbers with decimal point.. that is they can hold the result of fractions or exponential numbers.

Any integer can be converted to float by passing it to the float constructor

```
float(2)
```

```
2e4
```

### 01 - 03.03 Complex¶

Complex numbers are the numbers with real and imaginary parts. Just like int or float, we can construct a complex number by passing the arguments to complex constructor

```
c_val = complex(2, 3)
print(c_val)
```

```
c_val.real
```

```
c_val.imag
```

```
c_val.conjugate() # complex conjugate of c_val
```

Magnitude of a complex number:

i.e. $\sqrt{(c.real^2 + c.imag^2)}$

can be obtained by using `abs`

function

```
abs(c_val)
```

We shall take a deeper look at these datatypes and the operations that can be performed on them in the Operators module.