1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Python学习笔记17:实操案例十四(模拟高铁售票系统 推算几天后的日期)

Python学习笔记17:实操案例十四(模拟高铁售票系统 推算几天后的日期)

时间:2018-06-24 20:34:31

相关推荐

Python学习笔记17:实操案例十四(模拟高铁售票系统 推算几天后的日期)

Python学习笔记17:实操案例十四(模拟高铁售票系统,推算几天后的日期)

1.模拟高铁售票系统

使用漂亮的表格模块PrettyTable

这个模块需要预先安装,不然直接导入会报错:

安装办法:

/s?id=1727555443161391840&wfr=spider&for=pc

完成之后就不会报错了:

捕捉异常:

扩展:可以循环售票,可以打印车票等

这个前面都写过类似的功能,此处就偷个懒不写了

import prettytable as pt#显示坐席#显示坐席def show_ticket(row_num):tb=pt.PrettyTable()tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5']for i in range(row_num):lst=[f'第{i+1}行','有票','有票','有票','有票','有票']tb.add_row(lst)print(tb)#订票def order_ticket(row_num,row,column):tb=pt.PrettyTable()#买完要改成已出售,所以依旧要创建tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5']for i in range(row_num):lst = [f'第{i + 1}行', '有票', '有票', '有票', '有票', '有票'] # 把这一行先全部初始化为有票if int(row)==i+1:lst[int(column)]='已售'#再根据列数把对应位置置为已售tb.add_row(lst)print(tb)#因为不是在原有表格上修改的而是新建了一个,所以要再打印输出一次if __name__ == '__main__':row_num=13show_ticket(row_num)choose_num=input('请输入选择的座位号,如13,5表示13排5号座位')try:#可能出现异常的地方,有可能输错格式row,column=choose_num.split(',')#按照逗号分隔except:print('输入格式有误,如13排5号座位,应该输入13,5')order_ticket(row_num,row,column)

2.推算几天后的日期

出现一个小插曲,不小心把Pycharm的界面调成了这样,左边目录栏找不到了。

搜索之后从这里找到了:

/weixin_46713695/article/details/125029231

推算日期使用的模块叫datetime,不需要安装即可使用

前面这一截代码有点复杂,结合其他码友的帖子理解一下:

/python/att-string-strip.html

/qq_34840129/article/details/86212522

比较深奥而且专业一点的解释:/xili2532/article/details/90237674

前面先input得到一个字符串,然后去掉可能被使用者输错的首尾空格,通过下标索引拆分成年-月-日的形式,然后转化为字符串格式化后返回出去:

/article/168783.htm

然后再利用timedelta进行加减:

/xili2532/article/details/90237674

import datetimedef inputdate():indate=input('请输入开始日期:(例如:2008)后按回车:')indate=indate.strip()#去掉首尾空格datestr=indate[0:4]+'-'+indate[4:6]+'-'+indate[6:]return datetime.datetime.strptime(datestr,'%Y-%m-%d')#字符串转化为日期if __name__ == '__main__':print('---------------推算几天后的日期---------------')sdate=inputdate()#接受返回的字符串in_num=int(input('请输入间隔天数:'))fdate=sdate+datetime.timedelta(days=in_num)print('您推算的日期是:'+str(fdate))

也可以按照老师示范的这么改:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。