网站建设nayuwang,网站服务器建设合同范本,wordpress账号注册页面,wordpress 文章调用js一、效果展示通过Python实现一个电影订票系统#xff0c;效果如下所示#xff1a;二、整体结构图三、代码分解3.1 infos.py一部电影的详细信息适合用 字典 结构来存储#xff0c;我们可以给字典里添加多个键值对来保存电影的名称、座位表和宣传时用的字符画#xff0c;比如…一、效果展示通过Python实现一个电影订票系统效果如下所示二、整体结构图三、代码分解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(从上到下为 16 排从左至右为 18 座)print()for row in seats:time.sleep(0.1)print( .join(row))print()time.sleep(0.7)# 获取符合要求的行索引def get_row(self):input_row input(预订第几排的座位呢请输入 16 之间的数字)valid_row [str(i 1) for i in range(6)]while input_row not in valid_row:input_row input(没有按要求输入哦请输入 16 之间的数字)row int(input_row) - 1return row# 获取符合要求的列索引def get_col(self):input_column input(预订这一排的第几座呢请输入 18 之间的数字)valid_column [str(i 1) for i in range(8)]while input_column not in valid_column:input_column input(没有按要求输入哦请输入 18 之间的数字)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(非常抱歉 所有座位都被订满了无法为您保留座位)3.3 film_selector.py先来解决ling一项任务电影选择系统。出于人性化考虑我们希望用户既可以输入序号选择观看电影也可以输入 x 选择退出系统。为此我们需要完成下面两样需求和选座系统一样我们可以把“选择电影场次”功能抽象成一个类称为 电影选择系统。而根据用户选择预订某一场次的座位实际上是先调用 电影选择系统 选择电影再调用 选座系统 预订座位。这中间涉及到多次类的实例化与方法调用为了更清晰地组织代码我们将这部分内容也抽象成一个类称为 控制系统。import timeclass FilmSelector:# 展示所有可选项def display_options(self, films):print(今日影院排片列表)print()# 按行打印每部电影for i in range(len(films)):print({} - {}.format(i 1, films[i][name]))time.sleep(0.2)# 打印退出选项print(x - 退出)print()time.sleep(0.7)# 获取用户的选择def get_choice(self, films):# 符合要求的输入列表valid_choice [str(i 1) for i in range(len(films))]valid_choice.append(x)choice input(你的选择是)# 当不符合要求时循环获取新的选项while choice not in valid_choice:choice input(没有按照要求输入哦请重新输入)# 返回用户做出的选择return choice3.4 main.pyimport time
from infos import infos
from film_selector import FilmSelector
from seat_booking import SeatBookingclass Controller:def __init__(self, infos):self.films infos # 电影库所有电影# 打印欢迎语self.welcome()# 用户选择想观看的电影self.choose_film()# 根据用户选择执行不同流程if self.choice ! x:# 为指定场次预订座位self.choose_seat()# 打印结束语self.bye()# 用户选择想观看的电影def choose_film(self):# 实例化 FilmSelector 类selector FilmSelector()# 展示所有用户可以选择的选项selector.display_options(self.films)# 通过 get_choice() 方法获取用户选择self.choice selector.get_choice(self.films)# 为指定场次预订座位def choose_seat(self):# 取出用户所选择的电影film self.films[int(self.choice) - 1]# 取出所选择电影的电影名、座位表、宣传画name film[name]seats_list film[seats]symbol film[symbol]# 打印提示信息和电影宣传画print(正在为您预订电影《{}》的座位....format(name))time.sleep(0.7)print(symbol)time.sleep(0.7)# 打印预订座位的方法列表print(支持的座位预订方式如下)time.sleep(0.7)print()print(1 - 指定行列号预定座位)print(2 - 给我预订一个最靠前的座位)print()time.sleep(0.7)print()# 获取座位预订方式method input(请选择座位预订方式)# 定义符合要求输入列表 valid_methodvalid_method [1,2]# 当不符合要求时循环获取新的选项while method not in valid_method:method input(没有按照要求输入哦请重新输入)# 实例化 SeatBooking 类booking SeatBooking()# 打印所有座位的预订信息booking.check_bookings(seats_list)# 方法 1:指定行列号if method 1:booking.book_seat(seats_list)# 方法 2:预订最靠前的座位else:booking.book_seat_at_front(seats_list)# 打印欢迎语def welcome(self):print()print( 欢迎来到时光电影院 )print()print()time.sleep(0.7)# 打印结束语def bye(self):print()time.sleep(0.7)print()print( 已经退出系统下次见 )print()br/# 实例化 Controller 类
s Controller(infos)就分享到这里了赶快上手试试吧