From 9629c2c3cc2551bdb2be715b9fd39a42d1370705 Mon Sep 17 00:00:00 2001 From: pajjilykk Date: Wed, 1 Apr 2026 06:58:37 +0000 Subject: [PATCH] add negative number support --- .shii/lab3.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.shii/lab3.py b/.shii/lab3.py index 126366a..bb496d1 100644 --- a/.shii/lab3.py +++ b/.shii/lab3.py @@ -36,9 +36,6 @@ class Fraction: num = int(num) - if num <= 0: - raise ValueError("Числитель должен быть положительным") - return num @staticmethod @@ -53,17 +50,17 @@ class Fraction: den = int(den) - if den <= 0: - raise ValueError("Знаменатель должен быть положительным") + if den == 0: + raise ValueError("Знаменатель не может быть равен нулю") return den # ------------------------ # ПРОВЕРКА ПРАВИЛЬНОЙ ДРОБИ def validate_proper_fraction(self): - if self._numerator >= self._denominator: + if abs(self._numerator) >= abs(self._denominator): raise ValueError( - "Это не правильная дробь (числитель должен быть меньше знаменателя)" + "Это не правильная дробь (модуль числителя должен быть меньше модуля знаменателя)" ) # ------------------------ @@ -75,7 +72,7 @@ class Fraction: # ------------------------ # МЕТОД №2: СУММА ЦИФР ЗНАМЕНАТЕЛЯ 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() # Константы - frac1 = Fraction(1, 2) + frac1 = Fraction("1", "2") frac2 = Fraction("32", "540") fractions = [frac_input, frac1, frac2]