python做电影售票系统,Python电影票

  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 time

  class 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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: