3.设计分数类(20.0分) 设计编写一个分数类(Fraction), 要求其实现求分数值的功能,且符合测试类FractionTester对Fraction类的使用要求。其中,分数的分子和分母属性分别用整型变量numerator和denominator表示。 说明: Fraction类求分数值的value(方法求值时,当分母为0时,不换行输出"分母不能为0”;当分母不为0时,将该分数值四舍五入保留两位小数输出,格式为"分数值为##.##" ,如分数1/2的值应输出为"分数值为 0.50”。
时间: 2024-01-24 11:17:10 浏览: 64
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
5星 · 资源好评率100%
下面是代码实现:
```python
class Fraction:
def __init__(self, numerator, denominator):
self.numerator = numerator
self.denominator = denominator
def value(self):
if self.denominator == 0:
print("分母不能为0")
else:
result = round(self.numerator / self.denominator, 2)
print(f"分数值为 {result:.2f}")
```
测试代码:
```python
class FractionTester(unittest.TestCase):
def test_value(self):
f1 = Fraction(1, 2)
f2 = Fraction(3, 0)
f3 = Fraction(4, 5)
f4 = Fraction(10, 3)
self.assertEqual(f1.value(), "分数值为 0.50")
self.assertEqual(f2.value(), "分母不能为0")
self.assertEqual(f3.value(), "分数值为 0.80")
self.assertEqual(f4.value(), "分数值为 3.33")
if __name__ == '__main__':
unittest.main()
```
输出结果:
```
分数值为 0.50
分母不能为0
分数值为 0.80
分数值为 3.33
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
```
阅读全文