python编写一个程序,实现两个分数的加减法。 输入格式: 输入包含多行数据。 每行数据是一个字符串,格式是"a/boc/d"。 其中a, b, c, d是一个0-9的整数。o是运算符"+"或者"-"。 输出格式: 对于输入数据的每一行输出两个分数的运算结果。 注意:结果应符合书写习惯,没有多余的符号、分子、分母,并且化简至最简分数。
时间: 2024-02-27 10:53:58 浏览: 139
以下是一个实现两个分数的加减法的Python程序:
```python
from fractions import Fraction # 导入Fraction类用于分数运算
while True:
try:
s = input().strip() # 读入一行输入并去除首尾空白字符
if not s: # 如果输入为空行,结束循环
break
a, op, c, d = s.split() # 拆分四个数和运算符
b = op # 运算符就是第二个数
# 将四个数转换成分数类型
x = Fraction(int(a))
y = Fraction(int(c))
z = Fraction(int(d))
if b == "+":
result = x * z + y * z # 通分后相加
elif b == "-":
result = x * z - y * z # 通分后相减
else:
raise ValueError("Invalid operator: " + b) # 抛出异常
# 输出结果,使用分数对象的分子和分母属性
print("{}/{}".format(result.numerator, result.denominator))
except Exception as e:
print("Error:", e) # 处理异常情况,输出错误信息
```
该程序使用一个无限循环读入多行输入,每次读入一行字符串并拆分成四个整数和一个运算符。然后,程序将这四个整数转换成分数类型,并根据运算符进行加减运算,最后将结果输出为最简分数形式。
需要注意的是,程序还对输入格式和运算符进行了一些检查,如果发现错误就输出错误信息。例如,如果输入的运算符不是加号或减号,程序将抛出一个异常并输出错误信息。
阅读全文