前言

每次出好看的电影都是一票难求,那么如何在电影新上映的时候抢到一张属于你自己的电影票呢?下面就是来见证奇迹的时候。

整体流程图

三、代码分解

3.1 infos.py

一部电影的详细信息适合用 字典 结构来存储,我们可以给字典里添加多个键值对来保存电影的名称、座位表和宣传时用的字符画,比如电影《泰坦尼克号》的详细信息就可以按下面的形式保存到字典 titanic 中:

infos = [{'name': '泰坦尼克号','symbol': '''
+==================== 泰坦尼克号 =====================+▄▄▄▄▄▪   ▄▄▄▄▄  ▄▄▄·   ▐ ▄ ▪      ▄▄· •██   ██  •██   ▐█ ▀█  •█▌▐█  ██  ▐█ ▌▪▐█.▪ ▐█·  ▐█. ▪▄█▀▀█  ▐█▐▐▌  ▐█· ██ ▄▄▐█▌ ·▐█▌  ▐█▌· ▐█ ▪▐▌ ██▐█▌  ▐█▌ ▐███▌▀▀▀  ▀▀▀  ▀▀▀   ▀  ▀  ▀▀ █  ▪▀▀▀ ·▀▀▀
+===================== Titanic =====================+
''','seats': [['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '●', '○', '○', '●'],['○', '○', '●', '○', '●', '○', '○', '○'],['○', '○', '●', '○', '○', '○', '○', '●'],['○', '○', '●', '○', '○', '○', '●', '○'],['●', '○', '○', '○', '●', '●', '●', '●']]},{'name': '雨人','symbol': '''
+====================== 雨人 =======================+,---.    .--.  ,-..-. .-.           .--.  .-. .-. | .-.\  / /\ \ |(||  \| | |\    /| / /\ \ |  \| | | `-'/ / /__\ \(_)|   | | |(\  / |/ /__\ \|   | | |   (  |  __  || || |\  | (_)\/  ||  __  || |\  | | |\ \ | |  |)|| || | |)| | \  / || |  |)|| | |)| |_| \)\|_|  (_)`-'/(  (_) | |\/| ||_|  (_)/(  (_) (__)         (__)     '-'  '-'       (__)
+===================== Rain Man ====================+
''','seats': [['○', '○', '○', '○', '●', '○', '○', '●'],['○', '○', '○', '●', '●', '○', '○', '○'],['○', '●', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '●', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○']]},{'name': '卡门','symbol': '''
+======================= 卡门 =======================+▄█▄    ██   █▄▄▄▄ █▀▄▀█ ▄███▄      ▄   █▀ ▀▄  █ █  █  ▄▀ █ █ █ █▀   ▀      █  █   ▀  █▄▄█ █▀▀▌  █ ▄ █ ██▄▄    ██   █ █▄  ▄▀ █  █ █  █  █   █ █▄   ▄▀ █ █  █ ▀███▀     █   █      █  ▀███▀   █  █ █ █   ▀      ▀           █   ██ ▀
+====================== Carmen =====================+
''','seats': [['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '●', '●', '○', '○', '●', '●'],['○', '○', '○', '○', '○', '○', '●', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '●', '○', '○', '○', '●']]},{'name': '机器人总动员','symbol': '''
+==================== 机器人总动员 ===================+(`\ .-') /`  ('-.                           ('-.   `.( OO ),' ( OO ).-.                     _(  OO)  ,--./  .--.   / . --. / ,--.      ,--.     (,------. |      |  |   | \-.  \  |  |.-')  |  |.-')  |  .---' |  |   |  |,.-'-'  |  | |  | OO ) |  | OO ) |  |     |  |.'.|  |_)\| |_.'  | |  |`-' | |  |`-' |(|  '--.  |         |   |  .-.  |(|  '---.'(|  '---.' |  .--'  |   ,'.   |   |  | |  | |      |  |      |  |  `---. '--'   '--'   `--' `--' `------'  `------'  `------'
+====================== WALL·E =====================+
''','seats': [['●', '○', '○', '○', '○', '○', '○', '○'],['●', '○', '○', '○', '○', '○', '○', '●'],['○', '○', '●', '○', '●', '○', '●', '○'],['○', '○', '○', '○', '○', '○', '○', '●'],['○', '○', '○', '○', '●', '○', '○', '○'],['●', '●', '○', '○', '○', '●', '○', '○']]},{'name': '黑客帝国','symbol': '''
+===================== 黑客帝国 =====================+________            __  ___      __       _     /_  __/ /_  ___     /  |/  /___ _/ /______(_)  __/ / / __ \/ _ \   / /|_/ / __ `/ __/ ___/ / |/_// / / / / /  __/  / /  / / /_/ / /_/ /  / />  <  /_/ /_/ /_/\___/  /_/  /_/\__,_/\__/_/  /_/_/|_|
+==================== The Matrix ===================+
''','seats': [['○', '●', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '●', '●', '○', '○', '●'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '○'],['○', '○', '○', '○', '○', '○', '○', '●'],['○', '○', '●', '○', '○', '○', '○', '○']]},
]

3.2 seat_book.py

选座系统,需要实现下面这两样需求:

  • 展示所有座位的预订状态,方便用户查看哪些座位还可以预订;

  • 根据用户输入的座位号完成预订。

可以把选座系统抽象成一个类:SeatBooking,这个类包含了两种方法,check_bookings() 用于展示所有座位的预订状态,book_seat() 用于完成预订。

import timeclass SeatBooking:# 展示所有座位的预订信息def check_bookings(self, seats):print("正在为您查询该场次电影的预订状态...")time.sleep(0.7)print('从上到下为 1~6 排,从左至右为 1~8 座')print("======================")for row in seats:time.sleep(0.1)print('  '.join(row))print("======================")time.sleep(0.7)# 获取符合要求的行索引def get_row(self):input_row = input("预订第几排的座位呢?请输入 1~6 之间的数字")valid_row = [str(i + 1) for i in range(6)]while input_row not in valid_row:input_row = input('没有按要求输入哦,请输入 1~6 之间的数字')row = int(input_row) - 1return row# 获取符合要求的列索引def get_col(self):input_column = input('预订这一排的第几座呢?请输入 1~8 之间的数字')valid_column = [str(i + 1) for i in range(8)]while input_column not in valid_column:input_column = input('没有按要求输入哦,请输入 1~8 之间的数字')column = int(input_column) - 1return column# 预订指定座位def book_seat(self, seats):while True:row = self.get_row()column = self.get_col()# 指定座位没有被预订if seats[row][column] == '○':print("正在为您预订指定座位...")time.sleep(0.7)seats[row][column] = '●'print("预订成功!座位号:{}排{}座".format(row + 1, column + 1))break  # 结束循环,退出选座# 指定座位已经被预订了else:print("这个座位已经被预订了哦,试试别的吧")time.sleep(0.7)# 预订最靠前的座位def book_seat_at_front(self, seats):print("正在为您预订最靠前的座位...")time.sleep(0.7)# 外循环:遍历 seats 的行for row in range(6):# 内循环:遍历 seats 的列for column in range(8):# 若碰到没有被预订的座位if seats[row][column] == '○':seats[row][column] = '●' # 预订该座位print("预订成功!座位号:{}排{}座".format(row + 1, column + 1))return # 结束函数的执行,返回到它被调用的地方# 没有在循环内部结束程序,说明不存在没有被预订的座位print("非常抱歉												

Python实现电影抢票系统需要几行代码?猜对有奖相关推荐

  1. 我制作了一个基于Python 的电影订票系统

    文章目录 一.效果展示 二.整体结构图 三.代码分解 3.1 infos.py 3.2 seat\_book.py 3.3 film\_selector.py 3.4 main.py 一.效果展示 通 ...

  2. 基于python的12306自动抢票系统的设计与实现

    铁路售票系统12306网站作为一个广受人们的日常使用工具,受大极大的关注.铁路售票的管理者都主要考虑降低成本,提升售票服务满意度.一年一度的春运和节假日出行高峰期,给众多的出行群众者带来了极大的烦恼, ...

  3. 可操作性强!Python实现一个电影订票系统!

    来源丨Python小二 一.效果展示 通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以 ...

  4. 用python写12306系统_Python实现12306火车票抢票系统

    Python实现12306火车票抢票系统 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  Python实现12306火车票抢票系统.txt ] (友情提示:右键点 ...

  5. 用Python实现一个电影订票系统!

    一.效果展示  通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以给字典里添加多个键值对 ...

  6. 【文末赠书】用Python实现一个电影订票系统!

    来源丨Python小二 一.效果展示 通过Python实现一个电影订票系统,效果如下所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以 ...

  7. 基于python的火车票订票系统的设计与实现_Python实现12306火车票抢票系统

    Python实现12306火车票抢票系统效果图如下所示: 具体代码如下所示: import urllib.request as request import http.cookiejar as coo ...

  8. python抢票12306源码_Python实现12306火车票抢票系统

    Python实现12306火车票抢票系统效果图如下所示: 具体代码如下所示: import urllib.request as request import http.cookiejar as coo ...

  9. 微信公众号抢票系统开发笔记

    本次组队小作业的开发项目是微信公众号的抢票系统.我负责的是管理员的一些后台操作以及公众号内通过点击按钮.回复文字可以实现的一些票务功能的后端开发. 以下是我在开发过程中遇到的问题.解决方法. 前期准备 ...

  10. 通过python实现12306抢票

    铁路12306抢票系统 ​ #!/usr/bin/env python # -*- coding: utf-8 -*- """ 通过splinter刷12306火车票 进 ...

最新文章

  1. C#Redis集合set
  2. tableau可视化函数使用案例(六十六)-Tableau折线图作图方法(凹凸图、弧线图和雷达图)
  3. 美团点评数据产品专家冷戈:如何利用数据提高用户体验
  4. git ssh配置完后拉取代码_Git中SSH key配置秘钥生成和如何拉取代码
  5. 机器学习基础-一元线性回归-01
  6. Hadoop:mapreduce的splitsize和blocksize
  7. 图书漂流系统的设计和研究_研究在设计系统中的作用
  8. JFreeChart(三)之条形图
  9. CF876 F 思维 枚举
  10. 服务器硬件检测(采用mcelog)
  11. [转载] Java单例模式与构造器私有化
  12. DirectX修复工具常见问题解答
  13. 有点理解Google为什么要退出中国市场了
  14. 详解Java设计模式之观察者模式(Observer Pattern)
  15. 亿能bms上位机_BMS_CAN 基于USBCAN的BMS上位机软件,VC CSharp C#编程 238万源代码下载- www.pudn.com...
  16. PS 解决不能完成命令,暂存盘空间不足的问题
  17. 别让这些考场突发情况毁了你一整年的心血!!
  18. 7-5 sdust-Java-学生成绩读取与排序 (22分)
  19. Win7安装.Net Framework 4.5.2失败最有效的解决方法
  20. RFID自助借还书的功能介绍

热门文章

  1. 文件右键点击打开方式后没有始终使用此应用打开该文件的勾选框
  2. php paypal网站对接,php 接入 paypal 支付
  3. python爬虫使用seleium+超级鹰+Image模块自动登录12306(附源码和登录视频)
  4. Chrome对应webdriver版本
  5. Vue模板语法——插值
  6. android连接airprint打印机,苹果让无线打印更加便捷,安卓已羡慕
  7. JS跨域请求解决方案
  8. h5调用手机相机和录音机_html5 调用手机摄像头以及录音的方法
  9. EBS 采购订单入库
  10. vs2017使用教程