首页 > 解决方案 > 涉及多个输入的python中的名称错误

问题描述

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

 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}")

标签: pythonpython-3.xloopsclassfor-loop

解决方案


在“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}")

推荐阅读