问题描述:小白学习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:模拟购票的小程序的更多相关文章

  1. Python爬取微信小程序(Charles)

    Python爬取微信小程序(Charles) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90045204 一.前言 最近需要获取微信小 ...

  2. Python flask构建微信小程序订餐系统

    第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆ht ...

  3. Python flask构建微信小程序订餐系统☝☝☝

    Python flask构建微信小程序订餐系统☝☝☝ 一.Flask MVC框架结构 1.1实际项目结构 1.2application.py  项目配置文件 Flask之flask-script模块使 ...

  4. Python flask构建微信小程序订餐系统✍✍✍

    Python flask构建微信小程序订餐系统  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题, ...

  5. python实现串口通讯小程序(GUI界面)

    python实现串口通讯小程序(GUI界面) 使用python实现串口通讯需要使用python的pyserial库来实现,这个库在安装python的时候没有自动进行安装,需要自己进行安装. 1.安装p ...

  6. python爬取微信小程序(实战篇)

    python爬取微信小程序(实战篇) 本文链接:https://blog.csdn.net/HeyShHeyou/article/details/90452656 展开 一.背景介绍 近期有需求需要抓 ...

  7. 利用Python代码编写计算器小程序

    import tkinter import tkinter.messagebox import math class JSQ: def __init__(self): #创建主界面 self.root ...

  8. python -----一个简单的小程序(监控电脑内存,cpu,硬盘)

    一个简单的小程序 用函数实现!~~ 实现: cpu 使用率大于百分之50 时  ,  C 盘容量不足5 G 时, 内存 低于2G 时. 出现以上其中一种情况,发送自动报警邮件! 主要运用 到了两个 模 ...

  9. appium+python自动化56-微信小程序自动化(摩拜为例)

    前言 最近微信的小程序越来越多了,随之带来的问题是:小程序如何做自动化测试? 本篇以摩拜小程序为例,介绍如何定位小程序里面的元素 运行环境: android 7.0 appium v1.7.1 web ...

  10. [作业] Python入门基础---购物车小程序

    1.购物车小程序: 1.1用户输入工资取60% 1.2打印输出商品菜单 1.3由用户输入数字选择 #__author:Mifen #date: 2018/11/27 # 购物车程序 #把工资作为账户的 ...

随机推荐

  1. Linux SMB传输文件命令

    如何将linux服务器上的文件上传到华为NAS 如何登录华为NAS 首先登陆smb服务器, 不要账户名密码登录: smbclient -N \/\/192.168.0.1/共享 文件上传命令: 注意: ...

  2. linux which及软硬链接使用

    which查看系统命令位置,which vi /bin #放置系统一般命令 /sbin#放置系统管理相关命令 /user/bin /user/sbin 软链接 ln -s 源文件 链接文件 #1.如果 ...

  3. NOIP2019 树的重心

    Description \[\sum_{(u,v)\in E}\Biggl(\sum_{x为S_u重心}x+\sum_{y为S_v重心}y\Biggr) \] \(1\leqslant n\leqsl ...

  4. How to Show/Hide a Button Using the Business Process Flow Stage

    How to Show/Hide a Button Using the Business Process Flow Stage In today's blog, we'll discuss how t ...

  5. 基于工业4g网关的危化品运输车监控方案

    工业的发展立足于各种各样原材料的加工和应用,而其中就包括一些油料.化学品和易燃易爆货物,针对此类货物的运输,需要着重关注其安全性和稳定性,否则就容易造成严重的人身和财产损失.得益于物联网技术的发展,现 ...

  6. ELK集群基础环境初始化

    集群基础环境初始化 1.准备虚拟机 192.168.1.7 192.168.1.6192.168.1.183 2.切换为国内centos源 3.修改sshd服务优化 [root@elk01 ~]# s ...

  7. 字符串练习2 最长抑或路径(01trie树)

    题目链接在这里:P4551 最长异或路径 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 是一道比较经典的问题,对于异或问题经常会使用01trie树来解决. 当然01trie树只是用 ...

  8. 转发:Midway Serverless 发布 2.0,一体化让前端研发再次提效

    自去年 Midway Serverless 1.0 发布之后,许多业务开始尝试其中,并利用 Serverless 容器的弹性能力,减少了大量研发人员对基础设施和运维的关注.对前端开发者而言,他们只需写 ...

  9. Mysql用户及其权限

    一.创建用户 create user 'user_name' identified by 'password'; 二.用户授权 grant [权限名] on 数据库名.表名 to user_name ...

  10. spring事务不生效8种原因

    1.数据库引擎不支持事务 这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB. 根据 MySQL 的官方文档: ...