Find the numerator and denominator of a fraction in Python
Hello Geek! In this article, we will be learning how to find the numerator and denominator of a fraction in Python.
Before getting started let us learn a little about the fractions module.
Fraction class
fractions Module in Python helps us to perform arithmetic operations on rational numbers. We can create an object of the Fraction class by passing a pair of Integers, a String, or a Floating point number to the constructor.
We can import the Fraction class using the import statement below:
from fractions import Fraction
Creating a Fraction instance using a pair of Integers
Syntax: fractions.Fraction(numerator = 0, denominator = 1)
We can create a Fraction instance by passing a pair of integers to the constructor. The default values of numerator and denominator are set to 0 and 1 respectively.
Note: In the above syntax passing the denominator argument with 0 will result in ZeroDivisionError.
Note: The GCD of the numerator and denominator in the resultant Fraction instance will be 1.
Example: fractions.Fraction(2,4) will give an instance of Fraction(1,2).
Creating a Fraction instance using a String
Syntax: fractions.Fraction(string)
We can use strings represented in the form of ‘p/q’ or ‘z’.
Here p and q are instances of numbers.Rational class, z can be a floating-point number or a scientific notation of a number. That is a string can be ‘1/2’ or ‘1e-3’ or ‘1.25’.
Creating a Fraction instance using a Decimal
Syntax: fractions.Fraction(decimal)
We can also use a decimal object as an argument to the constructor to create a Fraction instance with an equivalent numerator and denominator.
Creating a Fraction instance using a float
Syntax: fractions.Fraction(float)
Similar to a decimal object we can also pass a float value as a parameter. This will create a Fraction instance with the equivalent numerator and denominator values.
Note: fractions.Fraction(2.3) is not equal to fractions.Fraction(decimal.Decimal(‘2.3’)) due to the limitations of floating-point numbers that is the binary approximation of floating-point numbers.
Creating a Fraction instance using another Fraction instance
Syntax: fractions.Fraction(Fraction)
We can also pass another Fraction as an argument to the constructor of the Fraction class to create a Fraction instance from it.
Finding the numerator and denominator of a Fraction instance
Note that In all the above ways in creating a fraction, a Fraction instance with the equivalent numerator and denominator will be created.
Let f be a Fraction instance, then we can get its numerator and denominator as f.numerator and f.denominator.
Now, let us dive into the program to find the numerator and denominator of a fraction and also understand the concepts better.
Program
Let us start with importing the Fraction class and the Decimal class from fractions and decimal modules respectively.
Now, let us create different Fraction instances using all the different ways that we discussed earlier.
Finally, we will print each fraction with its numerator and denominator.
from fractions import Fraction from decimal import Decimal f_int = Fraction(1,2) f_string_1 = Fraction('13/9') f_string_2 = Fraction('1e-3') f_string_3 = Fraction('1.25') f_decimal = Fraction(Decimal('2.3')) f_float = Fraction(2.3) f_fraction = Fraction(f_float) print("Fraction :",f_int,"| Numerator = ",f_int.numerator,"Denominator = ",f_int.denominator) print("Fraction :",f_string_1,"| Numerator = ",f_string_1.numerator,"Denominator = ",f_string_1.denominator) print("Fraction :",f_string_2,"| Numerator = ",f_string_2.numerator,"Denominator = ",f_string_2.denominator) print("Fraction :",f_string_3,"| Numerator = ",f_string_3.numerator,"Denominator = ",f_string_3.denominator) print("Fraction :",f_decimal,"| Numerator = ",f_decimal.numerator,"Denominator = ",f_decimal.denominator) print("Fraction :",f_float,"| Numerator = ",f_float.numerator,"Denominator = ",f_float.denominator) print("Fraction :",f_fraction,"| Numerator = ",f_fraction.numerator,"Denominator = ",f_fraction.denominator)
Output
Fraction : 1/2 | Numerator = 1 Denominator = 2 Fraction : 13/9 | Numerator = 13 Denominator = 9 Fraction : 1/1000 | Numerator = 1 Denominator = 1000 Fraction : 5/4 | Numerator = 5 Denominator = 4 Fraction : 23/10 | Numerator = 23 Denominator = 10 Fraction : 2589569785738035/1125899906842624 | Numerator = 2589569785738035 Denominator = 1125899906842624 Fraction : 2589569785738035/1125899906842624 | Numerator = 2589569785738035 Denominator = 1125899906842624
From the above output, you can notice that f_float and f_decimal are not equal as we discussed earlier in this article.
That’s it! We have learned to create a fraction and also to fetch their numerator and denominator in Python.
Thank you for reading this article and I hope it helped you. In case of any doubts, feel free to post them below.
Also do check out our other related articles :
Leave a Reply