python中涉及多个输入的名称错误

2024-05-04 01:00:20 发布

您现在位置:Python中文网/ 问答频道 /正文

它给出了一个名称错误,表示我没有定义a、b、c、d 我曾尝试将a、b、c、d添加到self.patients中的空列表中,但出现了另一个错误 下面是代码

 class Flight():
        def __init__(self, capacity):
            self.capacity = capacity
            self.passengers = []
    
        def add_passenger(self, name):
            if not self.open_seats():
                return False
            self.passengers.append(name)
            return True
    
        def open_seats(self):
            return self.capacity - len(self.passengers)
    
    flight = Flight(3)
    
    people = (a , b,c,d)
    a = input("!st passenger: ")
    b = input("2nd passenger: ")
    c = input("3rd passenger: ")
    d = input("4th passenger: ")
    for person in people:
        success = flight.add_passenger(person)
        if success:
            print(f"Added {person} to flight successfully")
        else:
            print(f"No available seats for {person}")

Tags: nameselfaddinputreturnifdef错误
2条回答

您需要取消从flight=flight(3)输入的所有内容,并将输入放在people元组之前

在“people=”中调用a、b、c、d之后,您可以定义它们。在设置人物元组之前,将定义向上移动,它就会起作用

class Flight():
        def __init__(self, capacity):
            self.capacity = capacity
            self.passengers = []
    
        def add_passenger(self, name):
            if not self.open_seats():
                return False
            self.passengers.append(name)
            return True
    
        def open_seats(self):
            return self.capacity - len(self.passengers)
    
flight = Flight(3)
a = input("!st passenger: ")
b = input("2nd passenger: ")
c = input("3rd passenger: ")
d = input("4th passenger: ")
people = (a , b,c,d)

for person in people:
    success = flight.add_passenger(person)
    if success:
        print(f"Added {person} to flight successfully")
    else:
        print(f"No available seats for {person}")

相关问题 更多 >