Предмет: Информатика,
автор: qwmateo
СРОЧНО ПОМОГИТЕ PYTHON
Даны две дроби a/b и c/d. Проверьте, что они равны.
Для решения этой задачи создайте класс Fraction и реализуйте в нём метод equal(self, other), проверяющий равенство объекта self и объекта other. Этот метод должен возвращать логическое значение (True или False).
Конструктор объекта класса Fraction должен принимать на вход два целых числа (числитель и знаменатель дроби). Значения по умолчанию для этих параметров равны 1.
Числитель должен быть записан в переменную self.numerator.
Знаменатель должен быть записан в переменную self.denominator.
Также в классе должен быть предусмотрен метод read(self), который будет читать строку вида a/b с клавиатуры, и вычленять из неё два числа, записывая их в переменные класса. Метод должен возвратить число 0 в таком случае.
Если в этом методе введена строка, не соответствующая вышеуказанному формату - запись чисел в объект производить не нужно, а метод должен возвратить число 1 в таком случае.
Формат входных данных
В первой строке даются два целых числа a и b, разделенные символом «/» (|a|,|b| ≤ 109; b ≠ 0).
Во второй строке даются два целых числа c и d, разделенные символом «/» (|c|,|d| ≤ 109; d ≠ 0).
Формат выходных данных
Выведите «YES», если a/b = c/d, и «NO» иначе.
входные данные выходные данные
1/2
2/4
YES
24/72
2/6
YES
КЛАСС ДОЛЖЕН БЫТЬ РЕАЛИЗОВАН НАД ЭТИМ КОДОМ (это проверка написания)
import sys
import io
import logging
logging.basicConfig(format='%(message)s')
try:
f = Fraction()
except NameError:
logging.error('В программе не объявлен класс Fraction')
sys.exit(1)
except TypeError:
logging.error('В конструкторе класса Fraction должны быть предусмотрены два значения по умолчанию')
sys.exit(1)
f1 = Fraction(1, 2)
f2 = Fraction(3, 4)
try:
r = f1.equal(other=f2)
if not isinstance(r, bool):
logging.error('Метод "equal" объекта Fraction должен возвращать логическое значение')
sys.exit(1)
except AttributeError:
logging.error('В объекте Fraction отсутствует метод "equal"')
sys.exit(1)
except TypeError:
logging.error('Метод "equal" объекта Fraction должен принимать на вход параметры "self" и "other"')
sys.exit(1)
Ответы
Автор ответа:
1
Ответ:
class Fraction:
def __init__(self, numerator=1, denominator=1):
self.numerator = numerator
self.denominator = denominator
def read(self):
try:
a, b = map(int, input().split('/'))
self.numerator = a
self.denominator = b
return 0
except ValueError:
return 1
def equal(self, other):
return self.numerator * other.denominator == self.denominator * other.numerator
fraction1.read()
fraction2 = Fraction()
fraction2.read()
if fraction1.equal(fraction2):
print("YES")
else:
print("NO")
Похожие вопросы
Предмет: Английский язык,
автор: kkudashova2009
Предмет: История,
автор: nazara051808
Предмет: Математика,
автор: ollapepsicola
Предмет: Русский язык,
автор: charlidast
Предмет: История,
автор: prostoy74
Выведите «YES», если a/b = c/d, и «NO» иначе. Можешь пожаалуйста дописать код