(4)创建一个Fraction类执行分数运算。要求如下: ①定义类的private成员变量:分子f1 和分母f2; ②提供构造方法,创建分数; ③提供两个分数相加的运算方法; ④提供两个分数相减的运算方法; ⑤提供两个分数相乘的运算方法; ⑥提供两个分数相除的运算方法; ⑦以a/b的形式打印Fraction数; ⑧以浮点数的形式打印Fraction数; ⑨主程序中创建分数,完成分数运算,输出结果
时间: 2024-01-21 19:19:49 浏览: 86
下面是一个符合要求的Fraction类的实现示例:
```python
class Fraction:
def __init__(self, f1, f2):
self.f1 = f1
self.f2 = f2
def add(self, other):
f1 = self.f1 * other.f2 + self.f2 * other.f1
f2 = self.f2 * other.f2
return Fraction(f1, f2)
def subtract(self, other):
f1 = self.f1 * other.f2 - self.f2 * other.f1
f2 = self.f2 * other.f2
return Fraction(f1, f2)
def multiply(self, other):
f1 = self.f1 * other.f1
f2 = self.f2 * other.f2
return Fraction(f1, f2)
def divide(self, other):
f1 = self.f1 * other.f2
f2 = self.f2 * other.f1
return Fraction(f1, f2)
def __str__(self):
return '{}/{}'.format(self.f1, self.f2)
def to_float(self):
return self.f1 / self.f2
```
在上面的代码中,我们定义了一个Fraction类,其中包含了分子和分母两个私有成员变量。我们提供了构造方法来创建分数,并且还实现了加、减、乘、除四种运算方法。我们重载了`__str__`方法来以a/b的形式打印分数,而`to_float`方法则以浮点数的形式打印分数。
下面是一个示例程序,演示了如何使用Fraction类进行分数运算:
```python
# 创建两个分数
frac1 = Fraction(1, 2)
frac2 = Fraction(3, 4)
# 输出两个分数
print('frac1 =', frac1)
print('frac2 =', frac2)
# 分数加法
result = frac1.add(frac2)
print('frac1 + frac2 =', result)
# 分数减法
result = frac1.subtract(frac2)
print('frac1 - frac2 =', result)
# 分数乘法
result = frac1.multiply(frac2)
print('frac1 * frac2 =', result)
# 分数除法
result = frac1.divide(frac2)
print('frac1 / frac2 =', result)
# 输出分数的浮点数形式
print('frac1 as float =', frac1.to_float())
print('frac2 as float =', frac2.to_float())
```
运行上面的程序,输出如下:
```
frac1 = 1/2
frac2 = 3/4
frac1 + frac2 = 5/4
frac1 - frac2 = -1/4
frac1 * frac2 = 3/8
frac1 / frac2 = 2/3
frac1 as float = 0.5
frac2 as float = 0.75
```
可以看到,我们成功地使用Fraction类进行了分数运算,并且能够以不同形式输出分数的值。
阅读全文