python:模拟购票的小程序
问题描述:小白学习python的第N天,继续练习。做一个模拟购票的小程序,没有用数据库和文件来存储数据,只是能够单词选择。

# hzh 每天进步一点点
# 2022/5/13 17:24
import colorama
import time
import os
import prettytable as pt colorama.init(autoreset=True)
class rcolors:
OKRED = '\033[1;31m'
END = '\033[0m' class Bcolors:
OKRED = '\033[1;32m'
END = '\033[0m' def xunhuan():
dict_ticker = {'K1177': ['北京南-台北东', '18:05', '18:39', '00:34'],
'T8917': ['武汉南-天津西', '18:15', '18:49', '00:34'],
'G6023': ['拉萨南-重庆西', '18:20', '19:19', '00:59'],
'G203': ['纽约西-旧金山', '18:35', '19:09', '00:34'],
}
print(rcolors.OKRED + '车次\t出发站-到达站\t\t出发时间\t到达时间\t历时时长' + rcolors.OKRED)
for item in dict_ticker:
print(Bcolors.OKRED + item, end='\t')
for i in dict_ticker[item]:
print(Bcolors.OKRED + i, end='\t\t')
print()
train_no = input('请输入要购买的车次:')
persons = input('请输入乘车人:')
flag = True
for j in dict_ticker: #输出字典的key,作为输入高铁班次做对比
if train_no == j:
flag = True
s = f'您已购买了{train_no}次列车,'
s_info = dict_ticker[train_no]
s += s_info[0] + '' + s_info[1] + '开,' # 获取列表中的对应索引的值
print('正在查询余票.')
row_num = 13
show_ticket(row_num)
chose_num = input('请选择您的座位号,如13,5表示13排5座位(13,5):')
try:
row, column = chose_num.split(',')
order_ticket(row_num, row, column)
time.sleep(2)
print('正在出票中,请稍等...')
time.sleep(3)
print(Bcolors.OKRED + f'座位号:{row}排{column}列,{s}请{persons}尽快取走纸质车票,祝您旅途平安。【铁路客服】' + Bcolors.END)
break
except:
print('输入格式有异常,如13,5表示13排5座位13,5,请重新购买车次')
xunhuan()
else:
flag = False
# print('没有查询到该车次信息,请重新输入:') if not flag:
print(rcolors.OKRED+'未查询到该车次信息,或者输入有误,请重新输入'+rcolors.END)
xunhuan()
def shuru():
print(rcolors.OKRED+'-----欢迎进入北京市列车购票系统-----'+rcolors.END)
print('请使用账号(admin) 密码(123456)来登录购票系统')
user = input('请输入用户名:')
passwd = input('请输入密码:')
if user=='admin' and passwd == '123456':
xunhuan()
else:
print('您输入的用户名或者密码不正确,请重新输入')
shuru() #显示坐席
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):
if int(row) == i+1:
lst = [f'第{i + 1}排', '有票', '有票', '有票', '有票', '有票']
lst[int(column)] = '已售'
tb.add_row(lst)
else:
lst = [f'第{i + 1}排', '有票', '有票', '有票', '有票', '有票']
tb.add_row(lst)
print(tb) if __name__ == '__main__':
shuru()
os.system('pause')
python:模拟购票的小程序的更多相关文章
- Python爬取微信小程序(Charles)
Python爬取微信小程序(Charles) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90045204 一.前言 最近需要获取微信小 ...
- Python flask构建微信小程序订餐系统
第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...
- Python flask构建微信小程序订餐系统☝☝☝
Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py 项目配置文件 Flask之flask-script模块使 ...
- Python flask构建微信小程序订餐系统✍✍✍
Python flask构建微信小程序订餐系统 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题, ...
- python实现串口通讯小程序(GUI界面)
python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...
- python爬取微信小程序(实战篇)
python爬取微信小程序(实战篇) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90452656 展开 一.背景介绍 近期有需求需要抓 ...
- 利用Python代码编写计算器小程序
import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root ...
- python -----一个简单的小程序(监控电脑内存,cpu,硬盘)
一个简单的小程序 用函数实现!~~ 实现: cpu 使用率大于百分之50 时 , C 盘容量不足5 G 时, 内存 低于2G 时. 出现以上其中一种情况,发送自动报警邮件! 主要运用 到了两个 模 ...
- appium+python自动化56-微信小程序自动化(摩拜为例)
前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...
- [作业] Python入门基础---购物车小程序
1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...
随机推荐
- Springboot中使用枚举
枚举映射数据库字段 配置枚举包扫描路径 mybatis-plus: # 扫描通用枚举 type-enums-package: com.xx.**.enums 方法一:@EnumValue 和 @Jso ...
- 去除input框相关样式,只显示内容
<input /> css代码: .edit-input{ /* width: 20px; */ height: -webkit-fill-available; background: i ...
- 08 分布式计算MapReduce--词频统计
def getText(): txt=open("D:\\test.txt","r").read() txt=txt.lower() punctuation = ...
- 记安装MySQL数据库
记录一次自己动手安装MySQL数据库所踩的坑 MySQL安装包与操作系统匹配 安装包有amd和Intel,32位.64位多种组合需要确认仔细使用者操作系统和CPU型号 例如我使用的是CentOS ...
- Python读写Excel文件第三方库汇总,你想要的都在这儿!
常见库简介 xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件.http://xlrd.readthedocs.io/en/latest/1.xlrd支持 ...
- 使用react-vite-antd,修改antd主题,报错 [vite] Internal server error: Inline JavaScript is not enabled. Is it set in your options? It is hacky way to make this function will be compiled preferentially by less
一般报错 在官方文档中,没有关于vite中如何使用自定义主题的相关配置,经过查阅 1.安装less yarn add less (已经安装了就不必再安装) 2.首先将App.css改成App.les ...
- 学习记录--C++文件读入与存储
C++中对文件操作需要包含头文件<fstream> 操作文件的三大类:1.ofstream写操作 2.ifstream读操作 3.fstream读写操作 一.写文件步骤 1.包含头文件 # ...
- pyecharts 学习使用网址
pyecharts新版官方手册地址:https://pyecharts.org/#/zh-cn/intro 或http://pyecharts.org/#/?id=pyecharts或http://p ...
- SpringBoot之基于idea搭建ssm(maven)
此次目标为搭建一个简单的基于springboot的ssm(spring + springmvc + mybatis)的maven项目,使用的数据库为mysql. 最终项目目录结构 创建过程 1.项目创 ...
- [imx6ull][nand] uboot烧录固件
背景 在调试阶段使用nxp的mfg-tools烧录比较麻烦,故考虑使用uboot指令实现固件烧录 烧录方法 //烧写内核 nand erase 0x4000000 0x800000 tftp zIma ...