I have a code that is supposed to simplify fractions. But i couldn't create simplify-method correctly.
class Fraction:
""" This class represents one single fraction that consists of
numerator and denominator """
def __init__(self, numerator, denominator):
"""
Constructor. Checks that the numerator and denominator are of
correct type and initializes them.
:param numerator: fraction's numerator
:param denominator: fraction's denominator
"""
if not isinstance(numerator, int) or not isinstance(denominator, int):
raise TypeError
elif denominator == 0:
raise ValueError
self.__numerator = numerator
self.__denominator = denominator
def return_string(self):
""" Returns a string-presentation of the fraction in the format
numerator/denominator """
if self.__numerator * self.__denominator < 0:
sign = "-"
else:
sign = ""
return "{:s}{:d}/{:d}".format(sign, abs(self.__numerator),
abs(self.__denominator))
def simplify(self):
""" simplify fraction """
def greatest_common_divisor(a, b):
"""
Euclidean algorithm.
"""
while b != 0:
a, b = b, a % b
return a
It should give
>>> frac = Fraction(-2, -4)
>>> frac.return_string()
'2/4'
>>> frac.simplify()
>>> frac.return_string()
'1/2'
So basically i have problem creating simplify-method. I also know you can import fractions but i'm not going to need that.