界面
文章来源地址https://www.toymoban.com/news/detail-795474.html
代码
#-*- coding:utf-8 -*-
import prettytable as pt#---------导入漂亮表格
import os.path
filename = 'ticket.txt'
#更新座位状态
def update(row_num):#------更新购票状态
with open(filename,'w',encoding='utf-8') as wfile:
for i in range(row_num):
lst1 = [f'{i+1}','有票','有票','有票','有票','有票']
wfile.write(str(lst1)+'\n')
#显示座席
def show_ticket():
with open(filename,'r',encoding='utf-8') as rfile:
lst = rfile.readlines()
tb = pt.PrettyTable()
tb.field_names = ['行号','座位1','座位2','座位3','座位4','座位5'] #表格的标题,行的title
for i in lst:
tb.add_row(eval(i))#--------从文件中读取的每一行字符串转换成列表加进tb中
print(tb)
#订票
def order_ticket(row,column):
with open(filename,'r',encoding='utf-8') as rfile:#----读取文件
lst = rfile.readlines()
# print(lst)
with open(filename,'w',encoding='utf-8') as wfile:#-----重写文件
for item in lst:
item=eval(item)#--------从文件中读取的每一行字符串转换成列表
# print(item[0])
if item[0] == row:
item[int(column)] = '已售'#-----------改写第row行第col列为'已售'
print(item)
wfile.write(str(item)+'\n')#---------把改写后的的对象保存到文件中
else:
wfile.write(str(item)+'\n')#---------如果没改变,把读取的对象保存到文件中
if __name__ == '__main__':
row_num = 13#---------全部13行
update(row_num) # ---调用更新函数,传入参数
show_ticket() # ---调用显示函数
while True:
choose_num = input('请输入选择的座位,如13,5表示13排五号座位')
try:
row,column = choose_num.split(',')#--------把输入的13,5一个参数分隔成13 5两个参数
order_ticket(row,column)# ----------把两参数数传入订票函数
except:
print('输入格式有误,如13排五号座位,应输入13,5,请重新输入')
continue
else:
choose = input('是否继续购票?y/n')
if choose == 'y':
continue
else:
show_ticket() # ---调用显示函数
#break---------加进可以退出死循环,退出只能重新售卖
#不加可以一直循环到卖完
文章来源:https://www.toymoban.com/news/detail-795474.html
到了这里,关于【python入门】day27: 模拟高铁售票系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!