add negative number support
This commit is contained in:
+6
-9
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user