【python入门】day27: 模拟高铁售票系统

界面

在这里插入图片描述

代码

#-*- 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'] #表格的标题,行的titlefor 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,请重新输入')continueelse:choose = input('是否继续购票?y/n')if choose == 'y':continueelse:show_ticket() # ---调用显示函数#break---------加进可以退出死循环,退出只能重新售卖#不加可以一直循环到卖完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/628011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java自动化将用例和截图一起执行测试放入world中直接生成测试报告【搬代码】

1.首先我们得用例写好之后放入文档中,把不用的案例类型、前置条件去掉之后,如图: 放到桌面后,先看执行结果: 首先,我们先创建一个时间,这个时间主要是给图片创建名称,并且要在插入world中使用该时间去查找对应的图片名称,且该图片名称是唯一值 //创建时间public st…

原生js监听当前元素之外的点击事件

监听当前元素之外的点击事件 一、具体场景二、具体实现三、完整代码 一、具体场景 当我们需要实现点击其他位置关闭弹窗的时候,就需要监听当前元素之外的点击事件。 二、具体实现 实现思路:监听整个dom的点击事件,判断当前元素是否包含点击…

数据库重点简答题

文章目录(持续更新) 数据库重点简答题📣一、SQL语言的作用?📣二、说一下你对ER图的认识?📣三、数据库中的三个模型?📣四、数据库基本表和视图的区别和联系?&a…

Qt 信号和槽机制

一. 简介 在Qt中使用信号和槽机制来完成对象之间的协同操作。简单来说,信号和槽都是函数,比如按下窗口上的一个按钮后想要弹出一个对话框,那么就可以将这个按钮的单击信号和我们定义的槽关联起来,在这个槽中可以创建一个对话框&am…

Linux相关命令使用

一、Vi与Vim编辑器 1、正常模式 以vim打开一个档案就直接进入一般模式了,在这个模式中,你可以使用【上下左右】移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。 2、…

训练DAMO-YOLO(damoyolo_tinynasL25_S.py)

文章目录 参考链接1 准备数据1.1 转为COCO格式1.2 指明数据路径 2 设置训练配置文件,在configs/damoyolo_tinynasL25_S.py进行如下两块修改2.1 关于训练参数的设置2.2 根据自己数据集设置 3 开始训练4 调用tools/eval.py进行测试5 训练时可能遇到的报错5.1 RuntimeE…

前端JS实现全屏和退出全屏的效果

全屏效果想必我们都很清楚把,平时追剧看电视剧什么都会使用全屏方便我们看,我们键盘的第一个键esc可以退出全屏,那么我们如何用js实现全屏的办法呢? 设置全屏 Document.requestFullscreen(),该方法用于异步请求使元素…

详解Matlab深度学习进行波形分割

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 🔐#### 防伪水印——左手の明天 ####🔐 💗 大家…

【DB】Redis缓存优化策略之,缓存预热与缓存清除

文章目录 1、什么是缓存优化?2、缓存预热3、缓存清除/更新4、reids缓存预热与清除5、总结 1、什么是缓存优化? 缓存是一种数据存储技术,用于存储经常访问的数据,以便在需要时快速获取。通过缓存数据,可以减少数据的访…

mysql进阶-深度为2的B+Tree树能存储多少行数据?

目录 1. 非叶子节点计算 2. 叶子节点存储的是完整的数据。 3. 整体计算 BTree树需要计算有叶子节点和非叶子节点。 假设一张商品表的数据结构如下: CREATE TABLE t_good (good_id int(12) NOT NULL AUTO_INCREMENT COMMENT 主键,good_name varchar(20) DEFAULT…

深度学习的基本概念汇总

这里小小总结一下看论文时常见到的名词,不用再一个个搜索啦!!! 1.batch size batch size是指在训练集中取的样本数,batch的size设置的不能太大也不能太小,因此实际工程中最常用的就是mini-batch&#xff0c…

C#编程-实现委托

实现委托 委托是可以存储对方法的引用的对象。在C#中,委托允许您动态地改变类中方法的引用。 考虑咖啡售货机的示例,它配置不同口味的咖啡,例如卡布奇诺咖啡和黑咖啡。在选择所需口味的咖啡时,售货机决定混合各种成分,例如奶粉、咖啡粉、热水、卡布奇诺咖啡粉。所有的材…

.Net Core 使用 AspNetCoreRateLimit 实现限流

上一篇文章介绍过ASP.NET Core 的 Web Api 实现限流 中间件-CSDN博客 使用.NET 7 自带的中间件 Microsoft.AspNetCore.RateLimiting 可以实现简单的Api限流,但是这个.NET 7以后才集成的中间件,如果你使用的是早期版本的.NET,可以使用第三方库…

React函数式组件学习笔记

React是一种用于构建用户界面的JavaScript库,它采用组件化的方式来构建复杂的UI。在React中,函数式组件是一种声明式的方式去描述UI的状态和行为。 React的特性 1.声明式设计-React采用声明范式,可以轻松描述应用 2.高效-React通过对DOM的模…

LaTeX系列1——主结构

初学,可交流,轻喷 \documentclass{book} \begin{document} \title{Book Title} \author{Author Name} \date{\today} \maketitle\chapter{Introduction} This is the introduction chapter of the book.\section{First Section} The first section of t…

【算法】使用栈解决一系列算法题(匹配、表达式、模拟)(C++)

1. 前言(栈适用于解哪些题?) 栈适合解决需要后进先出(LIFO)的结构的算法题,例如: 括号匹配问题:判断给定字符串中括号是否匹配。表达式求值问题:将表达式转换为后缀表达…

笙默考试管理系统-MyExamTest----codemirror(71)

笙默考试管理系统-MyExamTest----codemirror(71) 目录 一、 笙默考试管理系统-MyExamTest----codemirror 二、 笙默考试管理系统-MyExamTest----codemirror 三、 笙默考试管理系统-MyExamTest----codemirror 四、 笙默考试管理系统-MyExamTest---…

C++/WinRT 中的字符串处理

利用 C/WinRT,你可以使用 C 标准库宽字符串类型(如 std::wstring)调用 Windows 运行时 API(注:不要使用窄字符串类型,例如 std::string)。 C/WinRT 确实有名为 winrt::hstring 的自定义字符串类…

js 常用基础 老写不出来的问题记录--持续更新

1、result返回一个数组 数组包含多个对象数组对象 要这个数组对象的其中两个属构成新的数组对象 这个时候就使用到了map函数 map可以映射原本数组中的每个元素 返回一个新的数组 result.map(item > { return { id:item.id, name:item.talentsName }})//定义新数组的每项数…

《每天一分钟学习C语言·十二》各种指针问题

1、 int arr; int * restrict pt &arr; *pt 100; *arr 10;注:restrict只能修饰指针,被restrict修饰的指针指向一块内存后这块内存就归这个指针管理了,其他任何指针都不能修改这块内存的内容,这是一个约定,当…