Python Numbers – Three cheers for int, float and complex numbers
In this article, we will explore the different types of numbers in Python: integers (int), floating-point numbers (float), and complex numbers (complex). We’ll also see how to convert numbers from one type to another, known as type conversions. By the end, you’ll have a solid understanding of Python numbers and how to use them in your programs. Let’s get started and dive into the world of Python numbers!
Python Number Types
Python has basically three numeric data types named as int, float, and complex. Since Python is a dynamically typed language we don’t have to define the data type. It automatically recognizes the data type during runtime when we assign the variable.
1. Python int
In math, an integer is a whole number that can be either positive or negative and does not have any fractional value. Python’s int type is the same, allowing us to create integer objects directly by assigning a numeric value to them. These integers are precise and efficient, suitable for tasks that require exact whole numbers. Python also handles very large integers seamlessly, enabling calculations with big numbers without overflow issues.
Num1 = 45 Num2 = -10 print( Num1, Num2) type(Num1)
Output:
In Python, there is no limit to how long a number can be. It is only constrained by the amount of memory your system has.
Num = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 + 1 print(Num)
Output:
Note:
The division operator(‘/’) will convert the number into float. We use (‘//’) to do integer division.
print(4/2) type(4/2) print(4//2) type(4//2)
Output:
<class ‘float’>
2
<class ‘int’>
Python Integers Representation in different base
The default integer representation is in Decimal (base 10), but we can also store them as Binary, Octal or Hexadecimal.
They require a prefix before the number.
print(0b100, 0B100) #100 in binary print(0o100, 0O100) #100 in octal print(0x100, 0X100) #100 in hexadecimal
Output:
64 64
246 256
The type of Python integers is the same in all the different representations.
type(0b01) type(0o10) type(0x10)
Output:
<class ‘int’>
<class ‘int’>
2. Python float
In floating-point numbers, there is no fixed number of digits before or after the decimal point, allowing for the representation of very large or very small numbers with fractional parts. In Python, float is used to define these real numbers that have a decimal point. This type is particularly useful for calculations requiring precision, such as scientific computations or financial analysis.
X = 1.0 Y = 25.125 Z = - 48.1928569 print(X, Y, Z) type(X)
Output:
<class ‘float’>
Scientific Notation of Float Numbers
Float numbers can also be represented in scientific notation by using the character ‘e’ or ‘E’.
For example, 0.01 can be denoted as 1e-2.
X = 1e-2 Y = 4e5 Z = 2.5e105 print(X) print(Y) print(Z)
Output:
400000.0
2.5e + 105
The limit to floating-point numbers is that it can only store values up to 1.79 * 10^308. Values maximum than this will be represented with ‘inf’.
print(1.79e308) print(1.8e308)
Output:
Inf
3. Python Complex number
Complex numbers are represented in the form of (a+ib), where a is called the real part and b is called the imaginary part. Python uses j instead of i.
Let’s see the representation of a complex number in code.
X = 4+2j Y = 2-5j Z = -5j print(X) print(Y) print(Z) type(5-4j)
Output:
(2-5j)
(-0-5j)
<class ‘complex’>
Note:
It is compulsory to define the coefficient of the imaginary part, otherwise, the j will be considered as a variable.
X = 4 + j # NameError: name ‘j’ is not defined Y = 4 + 1j # Valid complex number
Python Type Conversion
Type conversion is the process of converting data types from one type to another.
For example, an integer value is converted into a float, or a string is converted into a number.
Type conversion can occur in one of the two types –
1. Implicit Conversion in Python
In implicit conversion, the Python automatically converts the value from one type to another.
For example: when we add an integer and a float value, the resultant will be in float value.
In these types of situations, Python always converts the smaller data types into larger data types so that data is not lost.
X = 12 Y = 20.50 Z = X + Y print(Z) type(X) type(Y) type(Z)
Output:
<class ‘int’>
<class ‘float’>
<class ‘float’>
However, when we add a string and an integer together, Python is not able to use implicit conversion and it will give us a TypeError. We can achieve this task by explicitly converting the data type.
2. Explicit Conversion in Python
In explicit conversion, users convert the data type of an object to the required data type. To perform the explicit conversion, we have some predefined functions like int(), float(), str(), hex(), oct(), etc. This process is also called Type Casting.
One thing to note here is that some data can be lost during typecasting.
a. int()
The int() function can convert another numeric or string data type into an integer type.
print( int(5.25) ) print( int(5.80) ) print( int(“456”) ) print( int(0b1010) )
Output:
5
456
10
As you can see, while converting to an integer, Python discards the numbers after the decimal point.
Note:
You can’t convert a complex number into an integer. Python will give you TypeError.
b. float()
This function converts other numeric values into floating values.
print( float(5) ) print( float(0xb) )
Output:
11.0
Note:
Complex numbers can not be converted into float values either.
c. complex()
Numeric values can be converted into complex numbers with complex() function.
print( complex(3) ) print( complex(8.5))
Output:
(8.5 + 0j)
d. bin()
The function bin() will convert integer numbers into their binary representation.
print( bin(20) ) print( bin(4) )
Output:
0b100
e. oct()
oct() function will convert integer numbers into their octal representations.
print( oct(20) ) print( oct(4) )
Output:
0b100
f. hex()
The function hex() also converts the integer numbers into hexadecimal representations.
print( oct(10) ) print( oct(5000) )
Output:
0x1388
Note: bin(), oct() and hex() function are only used for integer values, float, and complex numbers cannot be converted through them.
Summary
This article made a detailed talk about Python numbers and their different types: int, float and complex numbers. We also saw how they can be represented in binary, octal, and hexadecimal.
Later on, we understood the type conversion and how you can convert it from one type to another and also saw the limitations of each of them.