Skip to content

Instantly share code, notes, and snippets.

@alanjinqs
Last active January 14, 2021 01:47
Show Gist options
  • Save alanjinqs/9a8fdc56dcc42ffab7bfa7809eeef9a8 to your computer and use it in GitHub Desktop.
Save alanjinqs/9a8fdc56dcc42ffab7bfa7809eeef9a8 to your computer and use it in GitHub Desktop.
prm2021
# TASK 1
upTripRemain = [480, 480, 480, 480]
downTripRemain = [480, 480, 480, 640]
upTripPassenger = [0, 0, 0, 0]
downTripPassenger = [0, 0, 0, 0]
upTripRevenue = [0, 0, 0, 0]
downTripRevenue = [0, 0, 0, 0]
numOfPassenger = 0
userInput = ""
# \t = 键盘上的 TAB,只是为了排版好看
while True:
# Task 1
print("======UP TRIP======")
print("Time\t\tAvailable Tickets")
print("09:00\t\t" + (str(upTripRemain[0]) if upTripRemain[0] != 0 else "Closed"))
print("11:00\t\t" + (str(upTripRemain[1]) if upTripRemain[1] != 0 else "Closed"))
print("13:00\t\t" + (str(upTripRemain[2]) if upTripRemain[2] != 0 else "Closed"))
print("15:00\t\t" + (str(upTripRemain[3]) if upTripRemain[3] != 0 else "Closed"))
print("\n=====DOWN TRIP=====")
print("Time\t\tAvailable Tickets")
print("10:00\t\t" + (str(downTripRemain[0]) if downTripRemain[0] != 0 else "Closed"))
print("12:00\t\t" + (str(downTripRemain[1]) if downTripRemain[1] != 0 else "Closed"))
print("14:00\t\t" + (str(downTripRemain[2]) if downTripRemain[2] != 0 else "Closed"))
print("16:00\t\t" + (str(downTripRemain[3]) if downTripRemain[3] != 0 else "Closed"))
userInput = input("Type `E` if it's the end of day\n"
"Input the number of passenger to purchase tickets(e.g. `1` or `10`)\n>")
if userInput == "E":
# TASK 3
print("======UP TRIP======")
print("Time\t\ttickets\tRevenue")
print("09:00\t\t" + str(upTripPassenger[0]) + "\t\t" + str(upTripRevenue[0]))
print("11:00\t\t" + str(upTripPassenger[1]) + "\t\t" + str(upTripRevenue[1]))
print("13:00\t\t" + str(upTripPassenger[2]) + "\t\t" + str(upTripRevenue[2]))
print("15:00\t\t" + str(upTripPassenger[3]) + "\t\t" + str(upTripRevenue[3]))
print("\n=====DOWN TRIP=====")
print("Time\t\ttickets\tRevenue")
print("10:00\t\t" + str(downTripPassenger[0]) + "\t\t" + str(upTripRevenue[0]))
print("12:00\t\t" + str(downTripPassenger[1]) + "\t\t" + str(upTripRevenue[1]))
print("14:00\t\t" + str(downTripPassenger[2]) + "\t\t" + str(upTripRevenue[2]))
print("16:00\t\t" + str(downTripPassenger[3]) + "\t\t" + str(upTripRevenue[3]))
totalPassenger = sum(upTripPassenger) + sum(downTripPassenger)
totalRevenue = sum(upTripRevenue) + sum(downTripRevenue)
mostPassenger = max(max(upTripPassenger), max(downTripPassenger))
print("totalPassenger" + str(totalPassenger) +
" totalRevenue" + str(totalRevenue) +
" mostPassenger" + str(mostPassenger))
break
else:
# Task 2
if not userInput.isdigit() or (not 0 < int(userInput) < 81):
print("Invalid Input, number of passenger should between 1 and 80 (Inclusive)")
else:
numOfPassenger = int(userInput)
if numOfPassenger == 80:
pricePerTrip = (numOfPassenger - 8) * 25
elif numOfPassenger >= 70:
pricePerTrip = (numOfPassenger - 7) * 25
elif numOfPassenger >= 60:
pricePerTrip = (numOfPassenger - 6) * 25
elif numOfPassenger >= 50:
pricePerTrip = (numOfPassenger - 5) * 25
elif numOfPassenger >= 40:
pricePerTrip = (numOfPassenger - 4) * 25
elif numOfPassenger >= 30:
pricePerTrip = (numOfPassenger - 3) * 25
elif numOfPassenger >= 20:
pricePerTrip = (numOfPassenger - 2) * 25
elif numOfPassenger >= 10:
pricePerTrip = (numOfPassenger - 1) * 25
# 以上代码可以缩写为下面这一句
# 其中//等同于Pseudocode中的DIV
# 可以理解为除以后向下取整
# pricePerTrip = (numOfPassenger - numOfPassenger // 10) * 25
while True:
userInput = ""
while not userInput.isdigit() \
or int(userInput) < 1 or int(userInput) > 4:
userInput = input("Select time for UP TRIP \n1->09:00, 2->11:00, 3->13:00, 4->15:00\n"
"(Input `1` if you want to buy the ticket for 9:00)\n>")
if upTripRemain[int(userInput) - 1] >= numOfPassenger:
upTripRemain[int(userInput) - 1] -= numOfPassenger
upTripPassenger[int(userInput) - 1] += numOfPassenger
upTripRevenue[int(userInput) - 1] += pricePerTrip
break
print("Tickets are not enough for your group, please select another trip")
while True:
userInput = ""
while not userInput.isdigit() \
or int(userInput) < 1 or int(userInput) > 4:
userInput = input("Select time for DOWN TRIP \n1->10:00, 2->12:00, 3->14:00, 4->16:00\n"
"(Input `1` if you want to buy the ticket for 10:00)\n>")
if downTripRemain[int(userInput) - 1] >= numOfPassenger:
downTripRemain[int(userInput) - 1] -= numOfPassenger
downTripPassenger[int(userInput) - 1] += numOfPassenger
downTripRevenue[int(userInput) - 1] += pricePerTrip
break
print("Tickets are not enough for your group, please select another trip")
print("PRICE: " + str(pricePerTrip * 2) + "\n\n\n\n")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment