import datetime
#車站僅限西安、北京(pinyin)
print('---歡迎使用火車票查詢系統---')
print('本系統可查詢未來7天內火車票餘票資訊')
#輸入查詢條件
from_station = input('請輸入出發車站(xian):')
to_station = input('請輸入到達車站(beijing):')
from_date = input('請輸入出發日期(2018-01-01):')
#判斷輸入合法性
valid_from_station = false
valid_to_station = false
valid_from_date = false
while valid_from_station==false and valid_to_station==false and valid_from_date==false:
#判斷輸入出發車站合法性
if from_station == 'xian' or from_station == 'beijing':
valid_from_station = true
#判斷輸入到達車站合法性
if to_station == 'xian' or to_station == 'beijing':
valid_to_station = true
#判斷輸入出發時間合法性
today = datetime.date.today()
year = int(from_date[:4])
month = int(from_date[5:7])
day = int(from_date[8:])
qday = datetime.date(year,month,day)
lastday = today + datetime.timedelta(days=7)
if today <= qday and qday <= lastday:
valid_from_date = true
if valid_from_station == false:
from_station = input('請重新輸入出發車站(xian):')
if valid_to_station == false:
to_station = input('請重新輸入到達車站(beijing):')
if valid_from_date == false:
from_date = input('請重新輸入出發日期(2018-01-01):')
#執行查詢
print('正在查詢.......')
#顯示查詢結果
print('你的出發站:', from_station)
print('你的到達站:', to_station)
12306餘票查詢 二 獲取餘票資料
上節分析了獲取餘票資料的請求,本節開始抓取資料class get tickets def init self,start station,destination,date self.date date self.params 首先是傳遞你到底要查什麼,就是前面分析所需的三個引數 其實這裡要判斷一下,...
火車票餘票問題的演算法解析 續
在之前的文章中,我分析了火車票餘票的問題,提供了乙個高效的演算法。在本文中,我們繼續討論無座位號的餘票計算以及逐票更新的問題。之前的分析參見 還是以站點數 6,座位 5為例 如果不考慮座位號,我們只需要考慮每站售出的票數即可。1 2 的餘票數即為 總票數減去售票數 5 2 3 2 3 的餘票數即為 ...
12306餘票查詢 四 餘票價格併入資料集中
因為獲取每個車次的餘票,都需要請求資料,會有阻塞,這裡採用協程,提高效率 首先,寫個函式,是處理單個車次的加入票價行為 def get one price self,info dict 呼叫獲取票價的函式 price dict get price info dict train no info di...