2501_91075690 2025-04-07 14:31 采纳率: 0%
浏览 5

下图为潍坊一临沂的高铁时刻表,编写程序,实现输入计划出行时间, 给出最接近的的高铁车次以及发车时间和到达时间。

下图为潍坊一临沂的高铁时刻表,编写程序,实现输入计划出行时间, 给出最接高铁车次以及发车时间和到达时间。

img

  • 写回答

2条回答 默认 最新

  • 紫雾凌寒 新星创作者: 人工智能技术领域 2025-04-07 14:34
    关注

    让 “紫雾凌寒” 来帮你回答,本回答结合 DeepSeek

    如果还有问题,请评论或点击头像私信,如果有帮助到您, 请关注、采纳、点赞

    1. 关键点分析:
      - 首先需要将时刻表数据存储在合适的数据结构中,方便后续查找。
      - 输入的计划出行时间需要与时刻表中的发车时间进行比较,找到最接近的车次。
    2. 解决方案:
      - 假设时刻表数据存储在一个列表中,每个元素是一个包含车次、发车时间、到达时间的字典。
      - 示例代码如下:
    # 定义高铁时刻表
    train_schedule = [
        {'车次': 'G123', '发车时间': '08:00', '到达时间': '10:00'},
        {'车次': 'G456', '发车时间': '09:30', '到达时间': '11:30'},
        {'车次': 'G789', '发车时间': '10:45', '到达时间': '12:45'}
    ]
    
    # 输入计划出行时间
    plan_time = input("请输入计划出行时间(格式:HH:MM)")
    
    min_diff = float('inf')
    closest_train = None
    for train in train_schedule:
        departure_time = train['发车时间']
        diff = abs(int(departure_time[:2]) * 60 + int(departure_time[3:]) - (int(plan_time[:2]) * 60 + int(plan_time[3:])))
        if diff < min_diff:
            min_diff = diff
            closest_train = train
    
    if closest_train:
        print(f"最接近的车次是:{closest_train['车次']},发车时间:{closest_train['发车时间']},到达时间:{closest_train['到达时间']}")
    else:
        print("没有找到合适的车次")
    
    1. 多种解决方案及优缺点:
      - 方案一:直接比较时间差值
      • 优点:实现简单直接,易于理解和编写。
      • 缺点:对于复杂的时间处理需求扩展性较差,例如涉及到日期等更多信息时不够灵活。
      • 方案二:使用datetime模块
      • 优点:可以更方便地进行时间的各种计算和比较,功能更强大。
      • 缺点:代码相对复杂一些,需要导入模块并进行一些初始化设置。示例如下:
    from datetime import datetime
    
    # 定义高铁时刻表
    train_schedule = [
        {'车次': 'G123', '发车时间': '08:00', '到达时间': '10:00'},
        {'车次': 'G456', '发车时间': '09:30', '到达时间': '11:30'},
        {'车次': 'G789', '发车时间': '10:45', '到达时间': '12:45'}
    ]
    
    # 输入计划出行时间
    plan_time = input("请输入计划出行时间(格式:HH:MM)")
    
    min_diff = float('inf')
    closest_train = None
    plan_dt = datetime.strptime(plan_time, '%H:%M')
    for train in train_schedule:
        departure_dt = datetime.strptime(train['发车时间'], '%H:%M')
        diff = abs((departure_dt - plan_dt).total_seconds() // 60)
        if diff < min_diff:
            min_diff = diff
            closest_train = train
    
    if closest_train:
        print(f"最接近的车次是:{closest_train['车次']},发车时间:{closest_train['发车时间']},到达时间:{closest_train['到达时间']}")
    else:
        print("没有找到合适的车次")
    
    1. 总结:
      通过将时刻表数据存储在合适的数据结构中,并比较输入时间与发车时间的差值,我们可以找到最接近的高铁车次及其发车时间和到达时间。使用datetime模块可以更精确地处理时间,但直接比较时间差值的方法简单直观,可根据实际需求选择合适的方案。

    希望以上解答对您有所帮助。如果您有任何疑问,欢迎在评论区提出。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月7日