import random
import datetime
print("----------------------------欢迎来到火车票订购系统------------------------------------")
nt=datetime.datetime.now()
print('\t\t\t\t\t\t\t\t\t\t\t\t\t\t'+str(nt))
allinfo={'西安-北京':{'G658':['西安北','北京西','08:11','13:27','5时16分',{'商务':['12张',1627.5],'一等':['有',824.5],'二等':['无(可候补)',515.5]}],
'D432':['西安北','北京西','12:53','18:46','5时53分',{'商务':['10张',1627.5],'一等':['有',824.5],'二等':['无(可候补)',515.5]}],
'G2690':['西安北','北京西','14:55','20:38','5时43分',{'商务':['5张',1627.5],'一等':['无',824.5],'二等':['有',515.5]}],
'Z400':['西安站','北京西','20:22','08:22','12时整',{'硬座':['有',156.5],'硬卧':['无(可候补)',268.5],'软卧':['有',422.5]}],
'T350':['西安站','北京西','01:47','14:32','12时45分',{'硬座':['有',156.5],'硬卧':['无(可候补)',268.5],'软卧':['无(可候补)',422.5]}],
'K1345':['西安站','北京西','4:35','16:47','12时12分',{'硬座':['无(可候补)',156.5],'硬卧':['有',268.5],'软卧':['有',422.5]}]},
'保定-天津':{'D590':['保定东','天津西','10:41','11:51','1时10分',{'商务':['9张',105],'一等':['有',92],'二等':['无',57.5]}],
'G3748':['保定东','天津西','10:41','11:51','1时10分',{'商务':['3张',105],'一等':['有',92],'二等':['有',57.5]}],
'G510':['保定东','滨海北','13:29','14:36','1时7分',{'商务':['15张',269],'一等':['有',142.5],'二等':['无(可候补)',87.5]}],
'T203':['保定站','天津站','13:21','16:27','3时6分',{'硬座':['无(可候补)',28.5],'硬卧':['有',74.5],'软卧':['有',113.5]}]},
'成都-长沙':{'D268':['成都东','长沙南','07:33','14:54','7时21分',{'商务':['12张',1831.5],'一等':['有',977],'二等':['无',594.5]}],
'Z341':['成都东','长沙站','12:17','05:28','17时11分',{'硬座':['有',163.5],'硬卧':['无',280.5],'软卧':['无(可侯补)',438.5]}],
'G2190':['成都东','长沙南','16:02','23:29','7时27分',{'商务':['17张',1831.5],'一等':['无(可侯补)',977],'二等':['有',594.5]}],
'T1478':['成都站','长沙站','16:12','10:54','18时42分',{'硬座':['有',163.5],'硬卧':['无(可候补)',280.5],'软卧':['有',438.5]}],
'G630':['成都东','长沙南','07:49','15:25','7时36分',{'商务':['20张',1831.5],'一等':['无',977],'二等':['无',594.5]}]}
}
allad=[k for k,v in allinfo.items()]
print('全部车站:'+str(allad))
while True:
chu=input("请输入你的所在地:")
mu=input("请输入你的目的地:")
tim=input("请以(4-9)形式输入你的出发日期(只能购买今日起十五日内的车票):")
mon,day=tim.split('-')
bt=input("请输入查询or重置信息:")
cm = chu + '-' + mu
if bt=='查询':
if (cm in allad)==True and (int(mon)>=nt.month and int(day)>=nt.day and int(day)<=nt.day+15):
break;
else:
print("查不到列车信息,请重新输入")
elif bt=='重置信息':print("请重新输入你的购票信息")
else:
print("输入有误,请重置信息")
info=allinfo[cm]
print("------------------------全部车次信息-------------------------")
print("车次\t\t出发站-------到达站\t出发时间\t到达时间\t历时")
for k,v in info.items():
print(k +"\t"+ v[0] +'\t\t' + v[1] + '\t' + v[2] + '\t' + v[3] + '\t' + v[4])
while True:
checi=input("请输入购买的车次:")
print("-------------------------------------------------------------------该车次信息------------------------------------------------------------")
print("车次\t\t出发站-------到达站\t出发时间\t到达时间\t历时\t\t--------------------------------------票的信息(余票,价格)---------------------------------")
print(checi+'\t'+info[checi][0]+'\t\t'+info[checi][1]+'\t'+info[checi][2]+'\t'+\
info[checi][3]+'\t'+info[checi][4]+'\t'+str([{k:v} for k,v in info[checi][5].items()]))
type=input("输入您要买的车票类型(如一等、硬座等):")
if info[checi][5][type][0]=='无':
print('已无票!请选择其它车票。')
elif info[checi][5][type][0]=='无(可候补)':
k=input("请输入'确定'确认候补,选择其它车票请输入取消:")
if k=='确定':
print('[铁路客服温馨提示您]已为您进行候补,候补成功后将以短信的方式提醒您');break;
elif k=='取消':
print("请重新选择车票座位类型")
else:
print('输入有误请重新输入')
else:
print("请录入您的身份信息:")
name=input("姓名:")
input("身份号:")
a=random.randint(1,19)
b=random.randint(1,25)
c=random.choice("ABCD")
print('该票的票价为:'+str(info[checi][5][type][1])+'元,请输入’确认‘确认支付:')
zhifu=input()
if zhifu=='确认':
print('[铁路客服温馨提示您]'+'您已购'+checi+'次列车\t'+str(a)+'车|'+str(b)+str(c)+'\t'+\
cm+'\t'+str(nt.year)+'-'+tim+'-'+info[checi][2]+'开,请凭借身份证核验提前进站,祝您旅途愉快!')
break;
else:
print('支付失败,请重新选择购买')
print('\t\t\t\t\t\t\t\t\t\t\t\t\t\t'+str(nt))
print("-------------------------------------------------------------------------[铁路客服]")
以上为情况尽可能全面的结果展示。