欢迎访问宙启技术站
智能推送

使用Python编写一个简单的火车票查询程序

发布时间:2023-12-04 12:17:42

火车票查询程序是一个非常常见的应用,它可以让用户输入出发站、到达站、日期等信息,然后通过调用火车票查询接口,返回符合条件的火车票信息。

下面是一个简单的火车票查询程序的示例代码:

import requests

def query_train_tickets():
    # 用户输入出发站、到达站和日期信息
    from_station = input("请输入出发站:")
    to_station = input("请输入到达站:")
    date = input("请输入日期(格式为yyyy-mm-dd):")

    # 构建URL
    url = f"https://www.12306.cn/index/otn/leftTicket/queryZ?leftTicketDTO.train_date={date}&leftTicketDTO.from_station={from_station}&leftTicketDTO.to_station={to_station}&purpose_codes=ADULT"

    # 发送HTTP请求,获取火车票信息
    response = requests.get(url)
    tickets = response.json()["data"]["result"]

    # 解析火车票信息,打印出符合条件的火车票信息
    print("车次\t出发站\t到达站\t出发时间\t到达时间\t座位类型\t票价")
    for ticket in tickets:
        ticket_info = ticket.split("|")
        train_number = ticket_info[3]
        from_station_name = ticket_info[6]
        to_station_name = ticket_info[7]
        start_time = ticket_info[8]
        arrive_time = ticket_info[9]
        seat_type = ticket_info[35]
        price = ticket_info[33]

        print(f"{train_number}\t{from_station_name}\t{to_station_name}\t{start_time}\t{arrive_time}\t{seat_type}\t{price}")

# 调用火车票查询函数
query_train_tickets()

使用示例:

请输入出发站:北京
请输入到达站:上海
请输入日期(格式为yyyy-mm-dd):2022-01-01
车次    出发站    到达站    出发时间    到达时间    座位类型    票价
G101    北京    上海    08:00    13:30    商务座    1634.5
G105    北京    上海    09:00    14:30    商务座    1634.5
G109    北京    上海    10:00    15:30    商务座    1634.5
...

上述代码中,我们首先引入了requests库来发送HTTP请求,然后定义了一个query_train_tickets()函数来处理火车票查询逻辑。在函数内部,我们通过input()函数来获取用户输入的出发站、到达站和日期信息,并将这些信息拼接到查询URL中。然后,我们发送HTTP请求,获取到查询结果,并解析该结果,打印出车次、出发站、到达站、出发时间、到达时间、座位类型和票价等信息。

请注意,在实际使用中,你需要根据具体的火车票查询接口来构建查询URL,并根据返回结果的格式来解析火车票信息。上述示例代码仅作为一个简单的参考,具体实现需要依据你使用的具体接口进行调整。

总结起来,这个简单的火车票查询程序可以帮助用户根据出发站、到达站和日期查询火车票信息,以方便用户安排行程。通过使用Python编写这样的程序,可以提高自己的编程能力,并为日常生活提供便利。