class 任务: def __init__(self, 任务名称, 到达时间, 执行时间): self.任务名称 = 任务名称 self.到达时间 = 到达时间 self.执行时间 = 执行时间 self.完成时间 = 0 self.周转时间 = 0 self.已开始 = False def 计算周转时间(): 任务列表 = [] for _ in range(4): 任务名称, 到达时间, 执行时间 = input().split() 任务列表.append(任务(任务名称, int(到达时间), int(执行时间))) 当前时间 = 0 完成数量 = 0 结果 = [] while 完成数量 < 4: 可用任务 = [t for t in 任务列表 if t.到达时间 <= 当前时间 and not t.已开始] if not 可用任务: 下一个到达 = min([t.到达时间 for t in 任务列表 if not t.已开始]) 当前时间 = 下一个到达 continue 最短任务 = min(可用任务, key=lambda x: (x.执行时间, 任务列表.index(x))) 最短任务.已开始 = True 当前时间 += 最短任务.执行时间 最短任务.完成时间 = 当前时间 最短任务.周转时间 = 最短任务.完成时间 - 最短任务.到达时间 完成数量 += 1 结果.append(最短任务) 周转时间列表 = [] for i in range(4): for t in 结果: if 任务列表[i].任务名称 == t.任务名称: 周转时间列表.append(str(t.周转时间)) break print(" ".join(周转时间列表)) 计算周转时间()