Напишіть програму, яка реалізує додавання, віднімання, множення і ділення дробів. Формат дробів у вхідних і вихідних даних:
- Знак числа (пишеться тільки у випадку, коли його відсутність змінює число);
- Ціла частина числа (нульова ціла частина не пишеться, якщо є чисельник і знаменник);
- Пробіл (не пишеться, якщо відсутня ціла чи дробова частина);
- Чисельник (якщо він не рівний нулю);
- Знак / (якщо є чисельник);
- Знаменник (якщо є чисельник).
Приклади запису дробових чисел: -5 3/4, 9 1/2, -7/11, 0, 15.
Вхідні дані.
В першому рядку вводиться дріб (перший операнд), в другому рядку знак операції (+ - * /), в
третьому рядку дріб (другий операнд). Обидва дроби можуть бути скоротними.
Вихідні дані.
В єдиному рядку виводиться нескоротний правильний дріб (результат) в описаному форматі.
Вхідні дані #1
-3 1/6
+
2/4
Вихідні дані #1
-2 2/3
import linecache
from fractions import Fraction
try:
q=0
n=0
inpfile=open('c:\\test\\input.txt', 'rt')
oupfile=open('c:\\test\\output.txt', 'w')
inputdata=[]
for line in inpfile:
stripped_line = line.strip().replace(" ","+")
inputdata.append(stripped_line)
print(inputdata)
if len(inputdata)==3:
if len(inputdata[1])==1:
print(inputdata[1])
print(inputdata[0])
A=eval(inputdata[0])
print(A)
print(inputdata[2])
B=eval(inputdata[2])
print(B)
if inputdata[1]=='+':
q=A+B
elif inputdata[1]=='-':
q=A-B
elif inputdata[1]=='*':
q=A*B
elif inputdata[1]=='/':
q=A/B
print(q)
entier=int(q)
fraction=q%1
entstr=str(entier)
fractstr=str(Fraction(fraction))
print(fractstr)
oupfile.write(str(entstr + " " + fractstr))
oupfile.close()
except FileNotFoundError:
print('Файл не знайдено')
except ZeroDivisionError:
print('Ви намагаєтеся ділити на нуль')
except TypeError:
print('Ви використовуєте інший тип даних')
Объяснение: