定义两个类 Time12 和 Time24,实现以下功能:(1)Time12 类表示 12 进制时 间,Time24 类表示 24 进制时间;(2)类中定义函数,完成两个类之间的转换。即:利 用基类与派生类的转换关系,实现将 24 进制时间转换为 12 进制时间。
时间: 2023-06-23 21:08:20 浏览: 79
TimeConverter:该程序输入代表24小时制时间的4位数字,并将其转换为12小时制的时间。
下面是对应的代码实现:
```python
class Time12:
def __init__(self, hour, minute, meridiem):
self.hour = hour
self.minute = minute
self.meridiem = meridiem
def __str__(self):
return f"{self.hour}:{self.minute} {self.meridiem}"
class Time24(Time12):
def __init__(self, hour, minute):
super().__init__(hour, minute, "AM")
def to_time12(self):
hour = self.hour % 12
if hour == 0:
hour = 12
meridiem = "PM" if self.hour >= 12 else "AM"
return Time12(hour, self.minute, meridiem)
```
上面的代码定义了两个类 `Time12` 和 `Time24`,其中 `Time12` 表示 12 进制时间,有时、分和上午/下午三个属性。`Time24` 是 `Time12` 的子类,表示 24 进制时间,只有时和分两个属性。
`Time24` 中定义了一个方法 `to_time12`,用于将 24 进制时间转换为 12 进制时间。在转换时,首先将 24 进制时间的小时数转换为 12 进制表示,然后根据小时数判断上午/下午。
下面是一些测试代码,用于验证上面的类的实现是否正确:
```python
t24 = Time24(13, 30)
t12 = t24.to_time12()
print(t12) # 1:30 PM
t24 = Time24(23, 45)
t12 = t24.to_time12()
print(t12) # 11:45 PM
t24 = Time24(0, 0)
t12 = t24.to_time12()
print(t12) # 12:00 AM
```
这些测试代码创建了一些 `Time24` 的实例,并将它们转换为 `Time12` 实例,然后打印输出。输出结果应该与注释中的内容相同。
阅读全文