python做电影售票系统,Python电影票
本文主要介绍如何使用Python实现电影订票系统。电影的详细信息适合存储在字典结构中。我们可以在字典中添加多个键值对,以保存宣传中使用的电影名称、座位图和人物画像。有需要的朋友可以参考一下。
00-1010一、效果展示二。总体结构图三。代码分解3.1 infos . py 3.2 seat _ book . py 3.3 film _ selector . py 3.4 main . py
目录
通过Python实现一个电影订票系统,效果如下图所示:
一、效果展示
二、整体结构图
三、代码分解
电影的详细信息适合存储在字典结构中。我们可以向字典中添加多个键-值对,以保存电影的名称、座位表和宣传中使用的人物绘画。例如,电影《泰坦尼克号》的详细信息可以以如下形式保存在字典titanic中:
infos=[
{
名称 : 泰坦尼克号:
符号 :
==============泰坦尼克号======================
• • •
. .
=====================泰坦尼克号=================
,
座椅 : [[,,,,,,,],
[, , , , , , , ],
[, , , , , , , ],
[, , , , , , , ],
[, , , , , , , ],
[, , , , , , , ]]
},
{
姓名 : 雨人,
符号 :
==================雨人===================
, - .- .-.-.-.- .-.-.
.-.\//\ \ ( \ \ ///\ \ \
`-///__\ \(_) (\///__\ \
( __ \ (_)\/ __ \
\ \ ) ) \/ ) )
_ \)\_ (_)`-/((_) \/ _ (_)/((_)
(__) (__) - - (__)
======================雨人===============
,
座椅 : [[,,,,,,,],
[, , , , , , , ],
[, , , , , , , ],
[○, ○, ○, ○, ○, ○, ○, ○],
[○, ○, ●, ○, ○, ○, ○, ○],
[○, ○, ○, ○, ○, ○, ○, ○]]
},
{
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) - 1
return 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) - 1
return 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("非常抱歉
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。