这是我的代码:
# Task 1 (Start of the Day)
from prettytable import PrettyTable
TrainUpTime = ["09 00", "11 00", "13 00", "15 00"]
TrainDownTime = ["10 00", "12 00", "14 00", "16 00"]
AvailableUpTickets = [480, 480, 480, 480]
AvailableDownTickets = [480, 480, 480, 640]
UpMoneyEarned = [0, 0, 0, 0]
DownMoneyEarned = [0, 0, 0, 0]
x = PrettyTable()
column_names = ("Train Up Times", "Available Tickets", "Money Collected", "Train Down Times", "Available Tickets", "Money Collected")
x.add_column(column_names[0], TrainUpTime)
x.add_column(column_names[1], AvailableUpTickets)
x.add_column(column_names[2], UpMoneyEarned)
x.add_column(column_names[3], TrainDownTime)
x.add_column(column_names[4], AvailableDownTickets)
x.add_column(column_names[5], DownMoneyEarned)
print(x)
# Task 2 (Purchasing Tickets)
ticket = int(input("How many tickets do you want to buy?"))
up = input("Which time do you want to go up ?")
down = input("Which time do you want to come back down?")
disc = 0
upavail=True
downavail=True
# Check if the seats are available in the particular trains
for i in range(0, 4):
if TrainUpTime[i] == up:
if AvailableUpTickets[i] >= ticket:
upavail = "yes"
else:
upavail = "no"
if TrainDownTime[i] == down:
if AvailableDownTickets[i] >= ticket:
downavail = "yes"
else:
downavail = "no"
# See if the tickets are more than 10
if (upavail == "yes") and (downavail == "yes"):
if ticket < 10:
price = ticket * 50
else:
disc = ticket // 10
ticket = ticket - disc
price = ticket * 50
# Update the values
for i in range(0, 4):
if TrainUpTime[i] == up:
AvailableUpTickets[i] = (AvailableUpTickets[i] - ticket) - disc
UpMoneyEarned[i] = UpMoneyEarned[i] + (price / 2)
if TrainDownTime[i] == down:
AvailableDownTickets[i] = (AvailableDownTickets[i] - ticket) - disc
DownMoneyEarned[i] = DownMoneyEarned[i] + (price / 2)
elif (upavail == "yes") and (downavail == "no"):
print("The tickets that you are trying to book for the journey down are not available")
elif (upavail == "no") and (downavail == "yes"):
print("The tickets that you are trying to book for the journey up are not available")
else:
print("The tickets that you are trying to book for both the journeys are not available")
# Update the display screen
print(x)
目标:电动山地铁路每天往返四趟。在每次旅行中,火车都会上山然后下山。火车于09:00、11:00、13:00和15:00从山脚下发车。火车于10:00、12:00、14:00和16:00从山顶返回。每列火车有六节车厢,每节车厢有八十个座位。旅客只能购买回程票;所有车票必须在旅行当天购买。上山的费用为 25 美元,下山的费用为 25 美元。十到八十名乘客(含)的团体每十名乘客可获得一张免费机票,前提是他们一起旅行(每十名乘客免费旅行)。乘客在购买车票时必须预订回程火车旅程以及出发火车旅程。乘客可以乘坐下一趟下山的火车或稍后的火车返回。山顶的末班车有两个额外的车厢。火车时间显示在大屏幕上,以及每辆火车的可用车票数量。
任务 1 - 一天的开始。编写一个程序来设置一天开始时的屏幕显示。初始化合适的数据结构来计算每次火车旅行的总乘客人数和每次火车旅行的总费用。每趟火车旅程必须单独计算。每天上四趟,下四趟。
任务 2 - 购买门票。可以为单个乘客或团体购买车票。购买时,请检查所需的上下山火车旅行的车票数量是否可用。如果有门票,请计算总价,包括任何团体折扣。更新屏幕显示和总计数据。
我使用 prettytable 来打印一个显示所有必需值的漂亮表格。任务 1 完美运行,但在任务 2 中,当第二次打印表格时,它的值没有更新。即使我已经更新了任务 2 中的列表。我应该怎么做才能让它工作?请帮忙。