**If you are interested to learn about the python datatype**

## Python Numbers

**Number data types store numeric values**. They are immutable data types, means that changing the value of a number data type results in a newly allocated object. Number objects are created when you assign a value to them.

There are three numeric types in Python:

`int`

`float`

`complex`

Variables of numeric types are created when you assign a value to them:

### Example

x = 1 # int y = 2.8 # float z = 1j # complex

To verify the type of any object in Python, use the `type()`

function:

### Example

print(type(x)) print(type(y)) print(type(z))

## Int

Int, or integer, is a whole number, positive or negative, without decimals, of unlimited length.

### Example

Integers:

x = 1 y = 35656222554887711 z = -3255522 print(type(x)) print(type(y)) print(type(z))

## Float

Float, or “floating point number” is a number, positive or negative, containing one or more decimals.

### Example

Floats:

x = 1.10 y = 1.0 z = -35.59 print(type(x)) print(type(y)) print(type(z))

Float can also be scientific numbers with an “e” to indicate the power of 10.

### Example

Floats:

x = 35e3 y = 12E4 z = -87.7e100 print(type(x)) print(type(y)) print(type(z))

## Complex

Complex numbers are written with a “j” as the imaginary part:

### Example

Complex:

x = 3+5j y = 5j z = -5j print(type(x)) print(type(y)) print(type(z))

## Number Type Conversion

Python converts numbers internally in an expression containing mixed types to a common type for evaluation. But sometimes, you need to coerce a number explicitly from one type to another to satisfy the requirements of an operator or function parameter.

- Type
**int(x)**to convert x to a plain integer. - Type
**long(x)**to convert x to a long integer. - Type
**float(x)**to convert x to a floating-point number. - Type
**complex(x)**to convert x to a complex number with real part x and imaginary part zero. - Type
**complex(x, y)**to convert x and y to a complex number with real part x and imaginary part y. x and y are numeric expressions

You can convert from one type to another with the `int()`

, `float()`

, and `complex()`

methods:

### Example

Convert from one type to another:

x = 1 # int y = 2.8 # float z = 1j # complex #convert from int to float: a = float(x) #convert from float to int: b = int(y) #convert from int to complex: c = complex(x) print(a) print(b) print(c) print(type(a)) print(type(b)) print(type(c))

## Mathematical Constants

The module also defines two mathematical constants −

Sr.No. | Constants & Description |
---|---|

1 | piThe mathematical constant pi. |

2 | eThe mathematical constant e. |

## Type Conversion

You can convert from one type to another with the `int()`

, `float()`

, and `complex()`

methods:

### Example

Convert from one type to another:

x = 1 # int y = 2.8 # float z = 1j # complex #convert from int to float: a = float(x) #convert from float to int: b = int(y) #convert from int to complex: c = complex(x) print(a) print(b) print(c) print(type(a)) print(type(b)) print(type(c))

### Writing numbers in binary, octal, and hexadecimal in Python

More often than not, programmers need to deal with numbers other than decimal. To do this, you can use appropriate prefixes.

Number System | Prefix |

Binary | 0b or 0B |

Octal | 0o or 0O |

Hexadecimal | 0x or 0X |

#### 1. Binary Numbers in Python

When you want to write a binary number, use the prefix 0b or 0B. For example, we know that the binary for 7 is 111.

>>> print(0b111)

**Output**

7

You can also apply conversion functions on these numbers.

>>> int(0b10)

**Output**

2

#### 2. Octal Numbers in Python

The prefix for octal is 0o or 0O.

>>> print(0O10)

**Output**

8

The following code causes an error. This is because the octal number system does not have the number 8. It has the numbers 0-7.

>>> print(0O8)

**Output**

SyntaxError: invalid token

>>> float(0B10)

**Output**

2.0

#### 3. Hexadecimal Numbers in Python

The hexadecimal number system has numbers 0-9 and then A-F. For that, use the prefix 0x or 0X.

>>> print(0xFF)

**Output**

255

>>> print(0xFE)

**Output**

254

### Python Decimal Module

Let’s try out adding 1.1 and 2.2 in the shell, and let’s compare it with

3.3.>>> (1.1+2.2)==3.3

**Output**

False

Why did it return False? Let’s try printing the sum.

>>> 1.1+2.2

**Output**

3.3000000000000003

Woah, how did this happen? Well, this is duly attributed to hardware limitations, and is not a flaw of Python. Because the hardware stores decimals as binary fractions, it isn’t possible to store it very accurately. Let’s take an example.

>>> 1/3

**Output**

0.3333333333333333

### Fractions Module in Python

Another module that Python provides, the fractions module lets you deal with fractions. The Fraction() function returns the value in the form of numerator and denominator.

>>> from fractions import Fraction>>> print(Fraction(1.5))

**Output**

3/2