我的一个学校作业是创建一个程序,您可以输入最少的乘客人数,最大乘客人数和机票价格。随着乘客群增加10,票价降低50美分。最后,它应该显示用户输入的数字可以带来的最大利润,以及与最大利润相关的乘客数量和票价。这一切都有效,但是当您输入的数字会导致负利润时,我会收到运行时错误。我究竟做错了什么?如果利润低于0,我已经尝试做出if语句,但似乎并不奏效。这里是我为你们所看到的工作。一个正确的方向或建设性的批评将是一个很大的帮助。我该如何让这个程序显示负数的结果?
#first variables
passengers = 1
maxcapacity = 500
maxprofit = 0
ticketprice = 0
fixedcost = 2500
#inputs and outputs
again = 'y'
while (again == 'y'):
minpassengers = abs(int(input("Enter minimum number of passengers: ")))
maxpassengers = abs(int(input("Enter maximum number of passengers: ")))
ticketprice = abs(float(input("Enter the ticket price: ")))
if (minpassengers < passengers):
minpassengers = passengers
print ("You need at least 1 passenger. Setting minimum passengers to 1.")
if (maxpassengers > maxcapacity):
maxpassengers = maxcapacity
print ("You have exceeded the max capacity. Setting max passengers to 500.")
print ("Passenger Run from", minpassengers, "to", maxpassengers, "with an initital ticket price of $",format (ticketprice, "7,.2f"), "with a fixed cost of $2500.00\n"
"Discount per ticket of $0.50 for each group of 10 above the starting count of", minpassengers, "passengers")
for n in range (minpassengers, maxpassengers + 10, 10):
ticketcost = ticketprice - (((n - minpassengers)/10) * .5)
gross = n * ticketcost
profit = (n * ticketcost) - fixedcost
print ("Number of \nPassengers", "\t Ticket Price \t Gross \t\t Fixed Cost \t Profit")
print (" ", n, "\t\t$", format (ticketcost, "7,.2f"), "\t$", format (gross, "5,.2f"), "\t$", format(fixedcost, "5,.2f"), "\t$", format (profit, "5,.2f"))
if (profit > maxprofit):
maxprofit = profit
maxpass = n
best_ticket = ticketcost
print ("Your max profit is $", format (maxprofit, "5,.2f"))
print ("Your max profit ticket price is $", format (best_ticket,"5,.2f"))
print ("Your max profit number of passengers is", maxpass)
again = input ("Run this again? (Y or N): ")
again = again.lower()
print ("\n")
“我做错了什么?”您不会告诉我们运行时错误,也不会告诉我们它发生了什么。 – glglgl
如果我输入的数字只会导致一个负利润,它会显示“您的最大利润为0.00美元”,然后与此崩溃:Traceback(最近调用最后一次): 文件“/ Users/rooftopz/Documents/Python Assignments /游轮test.py“,行42,在 print(”您的最大利润票价是$“,格式(best_ticket,”5,.2f“)) NameError:名称'best_ticket'未定义 –
finch7591