# Python numbers

Python support 3 data type for numbers: `int`, `float`, and `complex`. These can also be used as variables, but a number always has a data type.

In this article we'll discuss more about these data types for numbers, namely which exist, how to convert them and use them.

Related course: Complete Python Programming Course & Exercises

## How to Create a Number Variable in Python?

The program below creates 3 variables of different data types, Python finds out the data type automatically.

``````x = 1
y = 1.33
z = 1 + 3j
``````

The complex number has a real number and an imaginary number. The imaginary number is denoted with `j` suffix.

## How to find the type of a Number?

Using the type() function you can find the data type.

``````print(type(x))
print(type(y))
print(type(z))
`````` ### Integer

Integers are whole numbers. They can be positive or negative. They must be without decimal values.

You can use the `int()` function to get the integer representation of an object.

Lets look into some examples of creating integers in Python.

``````x = 5
print(type(x))

x = int("10")
print(type(x))
``````

This results in:

``````>>> %Run example.py
<class 'int'>
<class 'int'>
>>>
``````

The `int()` method above converts a string to the type integer.

### Float

A floating point number contains decimal points, they can be positive or negative. You can use float() function to get the float representation of an object.

``````x = 1.5
y = float("1.5")

print(x)
print(type(x))

print(y)
print(type(y))
``````

### Complex numbers

Complex numbers are less usual outside of science and engineering. They have a real and imaginary part.

Complex numbers are another collection of numbers, you can get one by for example taking the sqrt of minus one.

``````x = 2 + 3j
print(type(x))
x = -3 + 3j
print(type(x))
x = complex(3,4)
print(x)
``````

This outputs:

``````<class 'complex'>
<class 'complex'>
(3+4j)
``````

## Python Numbers Type Conversion

You can convert variables by calling the methods `float()` or `int()`.

``````x = 2
print(float(x))
y = 2.0
print(int(y))
``````

This outputs:

``````>>> %Run example.py
2.0
2
``````

If you want to convert a complex numbers, you can use `complex() to convert an int or float to a complex number.

``````x = 2
print(complex(x))
y = 2.0
print(complex(y))
``````

This outputs:

``````>>> %Run example.py
(2+0j)
(2+0j)
``````