You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码未按预期输出:航班乘客添加功能需同时显示两类结果求助

问题分析与修复方案

你的代码无法同时输出两类结果的原因很明确:打印结果的if-else代码块没有放在for循环内部,导致循环结束后只会处理最后一位乘客的添加状态,前面三位成功添加的乘客完全没有输出记录。

修正后的代码

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 = ["Huey", "Duey", "Luey", "Uncle Scrooge"]
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}")

关键修改说明

将原本在循环外的if-else代码块缩进一级,放入for循环内部。这样每遍历一位乘客,调用add_passenger后会立刻根据返回的success值打印对应的结果,既可以输出成功添加的乘客信息,也能在座位满员时输出无座提示。

内容的提问来源于stack exchange,提问作者Bill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:55:56