一、安装 PrettyTable
首先,确保安装了 prettytable
模块。如果你还没有安装,可以通过下面的命令来安装:
pip install prettytable
二、代码实现
from prettytable import PrettyTable
class TrainTicketSystem:
def __init__(self):
# 初始化座位数据,6行5列,初始状态为"有票"
self.seats = [['有票' for _ in range(5)] for _ in range(6)]
def display_seats(self):
# 使用 PrettyTable 打印座位布局
table = PrettyTable()
table.field_names = ["行号/列号"] + [str(col + 1) for col in range(5)]
for row in range(6):
table.add_row([str(row + 1)] + self.seats[row])
print(table)
def sell_ticket(self, row, col):
# 销售门票,更新座位状态
if 1 <= row <= 6 and 1 <= col <= 5:
if self.seats[row - 1][col - 1] == "有票":
self.seats[row - 1][col - 1] = "已售"
print("售票成功!")
else:
print("抱歉,该座位已经售出。")
else:
print("输入的座位位置无效,请输入正确的行列。")
def main():
system = TrainTicketSystem()
while True:
system.display_seats()
user_input = input("请输入您想购买的座位(格式为:行,列,如 4,3),或输入 '退出' 结束: ")
if user_input.lower() == '退出':
print("感谢使用高铁售票系统,欢迎下次再来!")
break
try:
row, col = map(int, user_input.split(','))
system.sell_ticket(row, col)
except ValueError:
print("输入格式错误,请使用格式:行,列")
if __name__ == "__main__":
main()
三、代码说明
-
初始化座位:
TrainTicketSystem
类在初始化时创建一个 6 行 5 列的座位数组,每个座位的初始状态为“有票”。 -
显示座位:使用
PrettyTable
格式化输出座位状态,行和列号会自动生成。 -
售票逻辑:
sell_ticket
方法检查用户输入的座位位置是否有效,并确保座位状态在售票时更新。 -
用户交互:通过一个循环允许用户输入座位位置。如果用户输入“退出”,程序将结束。