关于python的问题,请教一下大家!

img


对输入的两个分数进行+、-*、/四则运算,输出最简分数结果
最简结果要求分母和分子互质(没有除1之外的公因子)

img

难点主要是输入的分数长度不固定,如果可以用正则式就简单了:

import re
from fractions import Fraction

f = input()
a = re.findall(r'(\d+)/(\d+)(.)(\d+)/(\d+)',f)

if len(a[0]) == 5 and a[0][2] in '+-*/':
    f1 = Fraction(int(a[0][0]), int(a[0][1]))
    f2 = Fraction(int(a[0][3]), int(a[0][4]))
    if a[0][2] == '+':
        print(f'{f1}+{f2}={f1+f2}')
    elif a[0][2] == '-':
        print(f'{f1}-{f2}={f1-f2}')
    elif a[0][2] == '*':
        print(f'{f1}*{f2}={f1*f2}')
    else:
        print(f'{f1}/{f2}={f1/f2}')
else:
    print('Input Error!')

望采纳,谢谢

import fractions
lst = input()
#print(lst.split('/')[1].split('+'))
f1 = fractions.Fraction(int(lst.split('/')[0]), int(lst.split('/')[1][0]))
f2 = fractions.Fraction(int(lst.split('/')[1][2]), int(lst.split('/')[2]))
if '+' in  lst:
    print('{} + {} = {}'.format(f1, f2, f1 + f2))
elif '-' in  lst:
    print('{} - {} = {}'.format(f1, f2, f1 - f2))
elif '*' in  lst:
    print('{} * {} = {}'.format(f1, f2, f1 * f2))
else:
    print('{} / {} = {}'.format(f1, f2, f1 / f2))