📜  查找给定火车到达的平台(1)

📅  最后修改于: 2023-12-03 15:26:39.056000             🧑  作者: Mango

查找给定火车到达的平台

介绍

设计一个程序,通过给定的火车编号和到达时间,查找该火车的到达平台号。

功能
  1. 输入火车编号和到达时间,返回火车的到达平台号。
  2. 若输入的火车编号或到达时间格式有误,提示并重新输入。
  3. 若输入的火车编号或到达时间无法找到火车信息,提示并重新输入。
实现思路
  1. 通过网络爬虫从铁路客户服务中心获取火车时刻表。
  2. 将火车时刻表存储为数据库,提高查询速度。
  3. 设计一个函数,检查输入的火车编号和到达时间格式是否正确。
  4. 设计一个函数,查询火车编号和到达时间对应的火车信息。
  5. 若查询到火车信息,返回到达平台号;否则,提示信息。
输入参数
  1. 火车编号。
  2. 到达时间。
输出参数
  1. 火车到达的平台号。
代码实现

以下是伪代码,供参考:

def check_input(train_number, arrival_time):
    """
    检查输入的火车编号和到达时间格式是否正确
    """
    # 检查火车编号格式是否正确
    if not re.match(r'^\d{5}$', train_number):
        print('火车编号格式错误,请重新输入')
        return False
    # 检查到达时间格式是否正确
    if not re.match(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}$', arrival_time):
        print('到达时间格式错误,请重新输入')
        return False
    return True

def get_train_info(train_number, arrival_time):
    """
    查询火车编号和到达时间对应的火车信息
    """
    # 查询火车编号和到达时间对应的火车信息,返回到达平台号
    train_info = database.query(train_number, arrival_time)
    if train_info:
        return train_info['platform']
    else:
        print('未查询到该火车信息,请重新输入')
        return None

while True:
    train_number = input('请输入火车编号:')
    arrival_time = input('请输入到达时间(格式YYYY-MM-DD HH:mm):')

    if check_input(train_number, arrival_time):
        platform = get_train_info(train_number, arrival_time)
        if platform is not None:
            print('该火车到达平台号为:', platform)
            break