Python fractions module enables the user to manage fractions related computations in an efficient manner. This module enables us to create fractions from integers, floats, decimal, and strings.
This fraction module supports rational number arithmetic operations.
Basics of fractions module
1. Importing a fraction module:
from fractions import Fraction
2. Instantiate the fraction class:
There are a number of ways to instantiate the fraction class. The following are some of the ways to instantiate the fraction class:
- Pass the numerator and denominator
- Instantiate with float
- Instantiate with decimal
- Instantiate with string
Example: Instantiate by passing numerator and denominator
from fractions import Fraction
Fraction(1, 2)
Example: Instantiate with float
from fractions import Fraction
Fraction(2.5)
Example: Instantiate with decimal
from fractions import Fraction
from decimal import Decimal
Fraction(Decimal('1.1'))
Example: Instantiate the string
from fractions import Fraction
Fraction('9/16')
Creating fractions
import fractions
for num, decimal in [(1, 2), (3, 6), (30, 7)]:
result = fractions.Fraction(num, decimal)
print('{}/{} = {}'.format(num, decimal, result))
Output:
1/2 = 1/2
3/6 = 1/2
30/7 = 30/7
Performing Arithmetic operations on fractions
The following example explains the different mathematical operations on fractions.
from fractions import Fraction
print(Fraction(100, 10) + Fraction(25, 5))
print(Fraction(18, 5) / Fraction(18, 10))
print(Fraction(18, 15) * Fraction(16, 25))
print(Fraction(17, 25) * Fraction(15, 25))
print(Fraction(12, 5) ** Fraction(12, 11))
Output:

Fraction Instances
A Fraction instance is a fraction built from a pair of integers, rational numbers or string. Fractions are hashable and immutable, so their values can’t be changed once created.
class fractions.Fraction(numerator=0, denominator=1) : It requires the numerator and denominator to be numbers. A fraction value = (numerator/denominator) is returned as the output, the default values is 0. An error of zero division is raised if denominator = 0.
Example:
from fractions import Fraction
print(Fraction(10, 35))
print(Fraction(10, 13))
print(Fraction()) # default value
Output:
2/7
10/13
0
Combining Math with fractions
The functions of the math module can be mixed with the fractional representation. The below example depicts one such representation.
import math
from fractions import Fraction
print("Square root: {}".format(math.sqrt(Fraction(21, 4))))
print("Floored to: {}".format(math.floor(Fraction(4100, 1100))))
print("Sined Fraction: {}".format(Fraction(math.sin(math.pi/2))))
Output:
Square root: 2.29128784747792
Floored to: 3
Sined Fraction: 1
Rounding off fractions
There is a possibility to round off fractions by the number of digits the user wants in the denominator.
Example:
import fractions
result = fractions.Fraction('21/8')
print('Rounded without limit : {}'.format(round(result)))
print('Rounded to 2 digits : {}'.format(round(result, 2)))
Output:
Rounded without limit : 3
Rounded to 2 digits : 131/50
Conclusion
We have understood and implemented the functionalities of the fractions module in Python.
References
- Python fractions
- Python fractions module Documentation