【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'] #表格的标题,行的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---------加进可以退出死循环,退出只能重新售卖
                              #不加可以一直循环到卖完

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue-路由-声明式导航

1. 导航链接 vue-router 提供了一个全局组件 router-link (取代 a 标签) 能跳转&#xff0c;配置 to 属性指定路径(必须) 。本质还是 a 标签 &#xff0c;to 无需 #能高亮&#xff0c;默认就会提供高亮类名&#xff0c;可以直接设置高亮样式 如&#xff1a; <div class&…

数据结构及其简单实现

栈 先进后出栈顶操作&#xff08;栈顶进&#xff0c;栈顶出&#xff09; class Strock {constructor() {this.data [] // 可以是对象this.count 0}push(item) {// 实现有三种// 1. this.data.push(item); // 2. this.data[this.data.length] item; this.count// 3this.dat…

五种嵌入式经典通信总线协议

一.先前知识 1.并行与串行 并行通信和串行通信是两种不同的数据传输方式&#xff1a; 并行通信&#xff1a;并行通信是指在同一时间使用多条并行传输的线路传输多个比特的数据。每个比特使用独立的线路进行传输&#xff0c;同时进行。这样可以在一个时钟周期内传输多个比特&…

Kafka入门基本概念(详细)

什么是kafka Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff08;消息引擎系统&#xff09;&#xff0c;它可以处理消费者在网站中的所有动作流数据。 这种动作&#xff08;网页浏览&#xff0c;搜索和其他用户的行动&#xff09;是在现代网络上的许多社会功能的一个关键…

c语言-数据类型(下)

目录 4.实型变量 5.字符常量 直接常量&#xff1a; 转义字符&#xff1a; 6.字符变量 7.字符串常量 五、输出格式总结 整型&#xff1a; 浮点型&#xff1a; 字符及字符串&#xff1a; 指针&#xff08;地址&#xff09;&#xff1a; 六、typedef 七、sizeof一个问…

Lazada测评,掌控自养测评号补单技巧,实现销量提升

稳定的Lazada测评除了需要搭建稳定的国外网络环境外&#xff0c;对于养号下单技巧也非常重要。 1.Lazada店铺的listing优化需精心打磨。商品主图、标题、详情页等核心要素&#xff0c;均需细心雕琢&#xff0c;以吸引买家的目光。站在消费者的角度&#xff0c;洞察需求&#x…

LabVIEW编码器自动校准系统

简介 在工作中&#xff0c;精确的角度测量和校准对于保持设备精度至关重要。开发了一套自动化角度编码器校准系统&#xff0c;利用了LabVIEW的强大功能。该系统以全圆连续角度标准装置为基础&#xff0c;配合二维导轨装夹系统&#xff0c;实现了空心轴角度编码器的高效自动校…

数据库往年试卷

实体完整性规则是指关系中的元组在组成主码的属性上是不能为空值的 参照完整性规则指外码不允许参照不存在的相应的主码值,或外码为空值 用户自定义完整性规则是用户根据具体应用定义的 关系数据库有三种基本关系运算&#xff1a;1、选择&#xff1b;2、投影&#xff1b;3、连…

Robotframework自动化测试环境搭建

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号【互联网杂货铺】&#xff0c;回复 1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 前言 1、在2019年之前&#xff0c;robotframework-ride的版本一…

【HTML5】 canvas 绘制图形

文章目录 一、基本用法二、用法详见2.0、方法属性2.1、绘制线条2.2、绘制矩形2.3、绘制圆形2.4、绘制文本2.5、填充图像 一、基本用法 canvas 标签&#xff1a;可用于在网页上绘制图形&#xff08;使用 JavaScript 在网页上绘制图像&#xff09;画布是一个矩形区域&#xff0c…

用 YAML 文件配置 CI/CD 管道

MSBuild 参数: 在使用 MSBuild 命令行生成打包项目(就像在 Visual Studio 中使用向导生成项目一样)之前,生成过程可以通过编辑 Package.appxmanifest 文件中 Package 元素的 Version 属性,来对生成的 MSIX 包进行版本控制。 在 Azure Pipelines 中,可以使用某个表达式来…

B端产品经理学习-B端产品的项目管理

项目管理的作用 指导Roadmap落地 每个节点的项目时间需要按照时间点落地&#xff0c;才不会影响后面的项目事件 为了明确需求&#xff0c;明确研发的工作 避免产研部门因为需求扯皮、研发部门抱怨需求文档不够清晰、在开发过程中增加很多细节需求、增加了研发的工作量、初次…

散列函数,哈希表hash table

附上一句话&#xff1a;我知道大家可能曾经了解过这个散列表了&#xff0c;我发现&#xff0c;如果多看几个相关的视频&#xff0c;从不同的表述方式和不同的理解角度来理解这个问题&#xff0c;我会明白的更透彻&#xff0c;也有更多新的收获&#xff0c;尤其是对这个算法的应…

软考和 PMP 哪个含金量更高点?

两个证都有用&#xff0c;不同的环境含金量也侧重不用&#xff0c;软考高项比较适用于计算机 IT 行业&#xff0c;而 PMP 不受行业限制&#xff0c;各行各业都适用&#xff0c;没有哪个含金量更高的说法 至于哪个更合适&#xff0c;看你想去国企还是民企&#xff0c;国企软考吃…

MiniTab的拟合回归模型的系列参数设置

为拟合回归模型指定模型项 统计 > 回归 > 回归 > 拟合回归模型 > 模型 可以向模型添加交互作用项和多项式项。默认情况下&#xff0c;模型仅包含在主对话框中输入的预测变量的主效应。添加项的方法有很多。假设预测变量列表具有 3 个连续变量 X、Y、Z 和 2 个类别…

Python自动化我选DrissionPage,弃用Selenium

DrissionPage 是一个基于 python 的网页自动化工具。 它既能控制浏览器&#xff0c;也能收发数据包&#xff0c;还能把两者合而为一。 可兼顾浏览器自动化的便利性和 requests 的高效率。 它功能强大&#xff0c;内置无数人性化设计和便捷功能。 它的语法简洁而优雅&#x…

如何隐藏服务器真实IP地址,隐藏服务器IP有什么好处

首先我们介绍了隐藏服务器IP的概念及工作模式&#xff0c;接着阐述了其对于DDoS攻击的防护作用。然后介绍了如何利用隐藏服务器IP增加系统性能和稳定性。接着我们讲述了如何隐藏服务器IP防止黑客攻击&#xff0c;最后总结了隐藏服务器IP在保护服务器和用户数据方面发挥的作用。…

UE4使用技巧

打开蓝图编辑器时不是打开一个新窗口&#xff0c;而是作为主窗口 适用于全部的打开新窗口的操作 蓝图编译时自动保存 开始游戏后立即捕获鼠标

系统性学习vue-vue中的ajax

vue中的ajax 配置代理常用发送Ajax请求方式跨域方式一方式二 vue-resource插槽默认插槽具名插槽作用域插槽 配置代理 常用发送Ajax请求方式 xhr new XMLHttpRequest() 在真正开发中不常用&#xff0c;比较麻烦jQuery 封装了xhraxios 封装了xhr 与jQuery相比优势是&#xff1a…

C# 导出EXCEL 和 导入

1.导出 使用winfrom简单做个界面 选择导出路径 XLSX起名字 打开导出是XLSX文件 代码部分 // 创建Excel应用程序对象Excel.Application excelApp new Excel.Application();excelApp.Visible false;// 创建工作簿Excel.Workbook workbook excelApp.Workbooks.Add(Type.Miss…