我有一个助手,我把乘客添加到公共汽车上,显示所有年龄的总和,平均年龄,并找到最年长的乘客。我想在菜单上显示乘客人数,但我无法解决这个问题。我试图使用number_of_passengers = len(passengers)
,但它在菜单中说number_of_passengers
没有定义。我将在这里添加整个代码,如果有人对如何使这个函数工作有任何建议,我将不胜感激。我想让它做的是:
number_of_passengers
都会更改为实际数量李>代码如下:
#imports to support the menu systems
import replit
from getkey import getkey, keys
#MENU FUNCTIONS : these are the functions used for the menu
#menuOptions 0
def add_passenger(passengers):
replit.clear()
passenger_age = int(input("How old is the passenger you wish to add? "))
print (passenger_age)
passengers.append(passenger_age)
#menuOptions 1
def print_bus(passengers):
replit.clear()
print("The age of the passengers on the bus are:")
print(*passengers, sep = ", ")
input("Press enter to go back")
#menuOptions 2
def calc_total_age(passengers):
replit.clear()
total_age = sum(passengers)
print("The total age of all passengers is " + str(total_age) + " years")
input("Press enter to go back")
#menuOptions 3
def calc_average_age(passengers):
replit.clear()
average_age = sum(passengers) / len(passengers)
round(average_age,2)
print("The average age of all passengers is " + str(average_age) + " years")
input("Press enter to go back")
#menuOptions 4
def max_age(passengers):
replit.clear()
eldest = max(passengers)
print("The passenger with the highest age on the bus is " + str(eldest) + " years old")
input("Press enter to go back")
#menuOptions 5
def find_age(passengers):
replit.clear()
min = input("What is the youngest age you wish to find? ")
max = input("What is the oldest age you wish to find? ")
for x in passengers:
if x > int(min) and x < int(max):
print (x)
input("Press enter to go back")
#menuOptions 6
def sort_buss(passengers):
replit.clear()
print("The age of the passengers in ascending order are:")
passengers.sort()
print(*passengers, sep = ", ")
input("Press enter to go back")
#CLASS BUS
#defining a class for the passenger list
class Bus:
passengers = []
number_of_passengers = 0
#The main part of the program where the menu system is. From here the functions are called.
def run(self):
menuOptions = ["Add a passenger\t\t\t\t\t\t\t", "Show the age of all passengers\t\t\t", "Show the total age of all passengers\t", "Show the average age of all passengers\t", "Show the age the oldest passenger\t\t", "Show ages within a chosen agespan\t\t", "Sort passengers by age\t\t\t\t\t", "Exit simulator\t\t\t\t\t\t\t"]
menuSelected = 0
while(True):
replit.clear()
print("Welcome to MyBusTravels bussimulator, please choose what you want to do:")
print("\x1b[?25l")
if menuSelected == 0:
print(menuOptions[0] + "<--")
print(menuOptions[1])
print(menuOptions[2])
print(menuOptions[3])
print(menuOptions[4])
print(menuOptions[5])
print(menuOptions[6])
print(menuOptions[7])
elif menuSelected == 1:
print(menuOptions[0])
print(menuOptions[1] + "<--")
print(menuOptions[2])
print(menuOptions[3])
print(menuOptions[4])
print(menuOptions[5])
print(menuOptions[6])
print(menuOptions[7])
elif menuSelected == 2:
print(menuOptions[0])
print(menuOptions[1])
print(menuOptions[2] + "<--")
print(menuOptions[3])
print(menuOptions[4])
print(menuOptions[5])
print(menuOptions[6])
print(menuOptions[7])
elif menuSelected == 3:
print(menuOptions[0])
print(menuOptions[1])
print(menuOptions[2])
print(menuOptions[3] + "<--")
print(menuOptions[4])
print(menuOptions[5])
print(menuOptions[6])
print(menuOptions[7])
elif menuSelected == 4:
print(menuOptions[0])
print(menuOptions[1])
print(menuOptions[2])
print(menuOptions[3])
print(menuOptions[4] + "<--")
print(menuOptions[5])
print(menuOptions[6])
print(menuOptions[7])
elif menuSelected == 5:
print(menuOptions[0])
print(menuOptions[1])
print(menuOptions[2])
print(menuOptions[3])
print(menuOptions[4])
print(menuOptions[5] + "<--")
print(menuOptions[6])
print(menuOptions[7])
elif menuSelected == 6:
print(menuOptions[0])
print(menuOptions[1])
print(menuOptions[2])
print(menuOptions[3])
print(menuOptions[4])
print(menuOptions[5])
print(menuOptions[6] + "<--")
print(menuOptions[7])
elif menuSelected == 7:
print(menuOptions[0])
print(menuOptions[1])
print(menuOptions[2])
print(menuOptions[3])
print(menuOptions[4])
print(menuOptions[5])
print(menuOptions[6])
print(menuOptions[7] + "<--")
keyPressed = getkey()
if keyPressed == keys.DOWN and menuSelected + 1 != len(menuOptions):
menuSelected += 1
elif keyPressed == keys.UP and menuSelected >= 1:
menuSelected -=1
elif keyPressed == keys.ENTER:
if menuSelected == 0:
add_passenger(self.passengers)
elif menuSelected == 1:
print_bus(self.passengers)
elif menuSelected == 2:
calc_total_age(self.passengers)
elif menuSelected == 3:
calc_average_age(self.passengers)
elif menuSelected == 4:
max_age(self.passengers)
elif menuSelected == 5:
find_age(self.passengers)
elif menuSelected == 6:
sort_buss(self.passengers)
elif menuSelected == 7:
print("\x1b[?25h")
break
class Program:
def __init__(self, *args):
minbuss = Bus()
minbuss.run()
replit.clear()
input("Simulator exited, press Enter to continue . . . ")
replit.clear()
if __name__ == "__main__":
my_program = Program()
您需要使用
self
,因此在欢迎屏幕之后,必须立即使用self.passengers
相关问题 更多 >
编程相关推荐