add negative number support

This commit is contained in:
2026-04-01 06:58:37 +00:00
parent dcf434bd10
commit 9629c2c3cc
+6 -9
View File
@@ -36,9 +36,6 @@ class Fraction:
num = int(num) num = int(num)
if num <= 0:
raise ValueError("Числитель должен быть положительным")
return num return num
@staticmethod @staticmethod
@@ -53,17 +50,17 @@ class Fraction:
den = int(den) den = int(den)
if den <= 0: if den == 0:
raise ValueError("Знаменатель должен быть положительным") raise ValueError("Знаменатель не может быть равен нулю")
return den return den
# ------------------------ # ------------------------
# ПРОВЕРКА ПРАВИЛЬНОЙ ДРОБИ # ПРОВЕРКА ПРАВИЛЬНОЙ ДРОБИ
def validate_proper_fraction(self): def validate_proper_fraction(self):
if self._numerator >= self._denominator: if abs(self._numerator) >= abs(self._denominator):
raise ValueError( raise ValueError(
"Это не правильная дробь (числитель должен быть меньше знаменателя)" "Это не правильная дробь (модуль числителя должен быть меньше модуля знаменателя)"
) )
# ------------------------ # ------------------------
@@ -75,7 +72,7 @@ class Fraction:
# ------------------------ # ------------------------
# МЕТОД №2: СУММА ЦИФР ЗНАМЕНАТЕЛЯ # МЕТОД №2: СУММА ЦИФР ЗНАМЕНАТЕЛЯ
def sum_digits_denominator(self) -> int: def sum_digits_denominator(self) -> int:
return sum(int(d) for d in str(self._denominator)) return sum(int(d) for d in str(abs(self._denominator)))
# ------------------------ # ------------------------
# СТРОКА ИНФОРМАЦИИ # СТРОКА ИНФОРМАЦИИ
@@ -115,7 +112,7 @@ def main():
frac_input = input_fraction() frac_input = input_fraction()
# Константы # Константы
frac1 = Fraction(1, 2) frac1 = Fraction("1", "2")
frac2 = Fraction("32", "540") frac2 = Fraction("32", "540")
fractions = [frac_input, frac1, frac2] fractions = [frac_input, frac1, frac2]