试图从原始值中减去值
Trying to deduct values from original values
所以我在下面写了一个小程序。它工作得很好,除了我似乎无法让它工作的一部分。每当一个或多个 taken/ordered 时,我试图从 10 或 4 的原始值中扣除空位。但我看不到能够做到这一点。除此之外,我的代码似乎对我来说效果很好。你能审查我的代码并帮助我改进吗?谢谢
比如我想在每次用户输入需要的座位数时扣除普通座位的座位数。如果他们需要 2 个座位,则应为 10 - 2,或者如果他们需要地板座位,则应为 4 - 2
def ticket_check(section, seats):
sections = "general \n floor"
general_seats = 10
floor_seats = 4
total_seats = general_seats + floor_seats
print ("Available sections:",sections)
section = input("Chose a section (G or F): ").capitalize()
if general_seats > 0 or floor_seats > 0:
if section == "G":
print ("Available seats", general_seats)
if general_seats > 0:
general_seat_order = int(input("Choose no. of seats: "))
general_seats = general_seats - general_seat_order
print ("Your seat order has been confirmed")
else:
print ("Sorry, no more general seats available")
elif section == "F":
print ("Available seats",floor_seats)
if floor_seats > 0:
floor_seat_order = int(input("Choose no. of seats: "))
floor_seats = floor_seats - floor_seat_order
print ("Your seat order has been confirmed")
else:
print ("Sorry, No more floor seats available")
else:
print ("Sorry, Section not available")
else:
print ("Pre-sale seats are sold out")
ticket_check("general \n floor", 14)
每次调用 ticket_check
时,您都会创建一个值为 10 的新 general_seats
变量。您需要将该变量移到函数调用之外,以便它在调用之间保持不变。
看起来这是一个更大的应用程序的一部分的方法。如果是这种情况,general_seats
可能不应该每次都重置为 10。相反,开放席位的数量(genetal_seats
我认为)应该作为变量传递,以便可以更改然后返回。根据其他因素,它可以设置为全局变量,但这通常不是最佳做法。我希望这就是您要找的。如果我误解了请告诉我。
澄清后编辑:如果将它们设置为全局变量,则可以从函数中删除 general_seats = 10
和 floor_seats = 4
。每次函数运行时,这两行分别将变量重置为 10 和 4。
所以我在下面写了一个小程序。它工作得很好,除了我似乎无法让它工作的一部分。每当一个或多个 taken/ordered 时,我试图从 10 或 4 的原始值中扣除空位。但我看不到能够做到这一点。除此之外,我的代码似乎对我来说效果很好。你能审查我的代码并帮助我改进吗?谢谢
比如我想在每次用户输入需要的座位数时扣除普通座位的座位数。如果他们需要 2 个座位,则应为 10 - 2,或者如果他们需要地板座位,则应为 4 - 2
def ticket_check(section, seats):
sections = "general \n floor"
general_seats = 10
floor_seats = 4
total_seats = general_seats + floor_seats
print ("Available sections:",sections)
section = input("Chose a section (G or F): ").capitalize()
if general_seats > 0 or floor_seats > 0:
if section == "G":
print ("Available seats", general_seats)
if general_seats > 0:
general_seat_order = int(input("Choose no. of seats: "))
general_seats = general_seats - general_seat_order
print ("Your seat order has been confirmed")
else:
print ("Sorry, no more general seats available")
elif section == "F":
print ("Available seats",floor_seats)
if floor_seats > 0:
floor_seat_order = int(input("Choose no. of seats: "))
floor_seats = floor_seats - floor_seat_order
print ("Your seat order has been confirmed")
else:
print ("Sorry, No more floor seats available")
else:
print ("Sorry, Section not available")
else:
print ("Pre-sale seats are sold out")
ticket_check("general \n floor", 14)
每次调用 ticket_check
时,您都会创建一个值为 10 的新 general_seats
变量。您需要将该变量移到函数调用之外,以便它在调用之间保持不变。
看起来这是一个更大的应用程序的一部分的方法。如果是这种情况,general_seats
可能不应该每次都重置为 10。相反,开放席位的数量(genetal_seats
我认为)应该作为变量传递,以便可以更改然后返回。根据其他因素,它可以设置为全局变量,但这通常不是最佳做法。我希望这就是您要找的。如果我误解了请告诉我。
澄清后编辑:如果将它们设置为全局变量,则可以从函数中删除 general_seats = 10
和 floor_seats = 4
。每次函数运行时,这两行分别将变量重置为 10 和 4。