需求:假设高铁一节车厢的座位数有6行,每行5列,每个座位初始显示“有票”,用户输入座位位置(如,4,3)后,按回车,则该座位显示“已售”,使用第三方模块prettytable
import prettytable as pt
#显示坐席
def show_ticket(row_num):
tb=pt.PrettyTable()#创建一张表格
#设置标题(表格的第一行)
tb.field_names=['行号','座位1','座位2','座位3','座位4','座位5']
#遍历表格显示有票状态
for i in range(1,row_num+1):
lst=[f'第{i}行','有票','有票','有票','有票','有票']
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(1, row_num + 1):
if int(row)==i:#row,column是字符串类型
lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
lst[int(column)]='已售'
tb.add_row(lst) # 将列表添加在表格中
else:
lst = [f'第{i}行', '有票', '有票', '有票', '有票', '有票']
tb.add_row(lst) # 将列表添加在表格中
print(tb)
if __name__ == '__main__':
row_num=6
show_ticket(row_num)
#开始售票
choose_num=input('请输入您选择的坐席:如4,3表示第4行第3列:')
row,column=choose_num.split(',')#系列解包,分开赋值
order_ticket(row_num,row,column)
运行结果如下: