diff --git a/nessesary/__pycache__/fraction.cpython-310.pyc b/nessesary/__pycache__/fraction.cpython-310.pyc new file mode 100644 index 0000000..54e7f9e Binary files /dev/null and b/nessesary/__pycache__/fraction.cpython-310.pyc differ diff --git a/nessesary/fraction.py b/nessesary/fraction.py index a1da5e7..6209566 100644 --- a/nessesary/fraction.py +++ b/nessesary/fraction.py @@ -1,9 +1,38 @@ class Fraction: def __init__(self, numer, denom): - self.numer = numer - self.denom = denom + if numer < 0 and denom < 0: + numer = -numer + denom = -denom + if denom < 0: + numer = -numer + denom = -denom + if denom == 0: + raise ValueError("Denominator shouldn't be zero.") + self.__numer = numer + self.__denom = denom self.floating = numer/denom + @property + def numer(self): + return self.__numer + + @property + def denom(self): + return self.__denom + + @numer.setter + def numer(self, value): + self.__numer = value + + @denom.setter + def denom(self, value): + if denom < 0: + numer = -numer + denom = -denom + if denom == 0: + raise ValueError("Denominator shouldn't be zero.") + self.__denom = value + def __add__(self, other): """ Add Fraction. @@ -62,4 +91,19 @@ class Fraction: return result def __str__(self) -> str: + """ + Print Fraction Form. + >>> m1 = Fraction(1, 2) + >>> print(m1) + 1/2 + >>> m2 = Fraction(5, -2) + >>> print(m2) + -5/2 + >>> m3 = Fraction(-5, 2) + >>> print(m3) + -5/2 + >>> m4 = Fraction(-5, -2) + >>> print(m4) + 5/2 + """ return f"{self.numer}/{self.denom}" \ No newline at end of file