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

Python飞行信息查询工具elif分支匹配错误,输入glfail触发错误分支

问题根源

你的代码or逻辑存在语法错误:
两个elif判断条件中都存在单独直接写字符串常量的写法,比如第一个分支里的or 'efail abz'、第二个分支里的or 'efail gla'。在Python中,非空字符串的布尔判断结果永远为True,这就导致第一个elif的判断条件永远成立,不管输入什么内容都会直接进入第一个分支,根本不会走到匹配glfail的第二个分支。

修复方案

方案1:补全缺失的判断逻辑

把两个elif里漏写的answer ==补全即可,修正后的条件部分如下:

# 修正第一个分支的判断条件
elif answer == 'efailabz' or answer == 'engfailabz' or answer == 'efailegpd' or answer == 'engoutabz' or answer == 'eturnabz' or answer == 'efail abz' or answer == 'engfail abz' or answer == 'efail egpd' or answer == 'engout abz' or answer == 'eturn abz':
# 修正第二个分支的判断条件
elif answer == 'glfail' or answer == 'engfailgla' or answer == 'efailegpf' or answer == 'engoutgla' or answer == 'eturngla' or answer == 'efail gla' or answer == 'engfail gla' or answer == 'efail egpf' or answer == 'engout gla' or answer == 'eturn gla':

方案2:用成员判断简化代码(更推荐)

把每个分支对应的所有合法输入放到列表里,用in关键字判断输入是否在合法列表中,代码更易读也不容易出现漏写判断的问题:

# 提前定义各分支的合法输入列表,也可以直接写在判断条件里
abz_commands = ['efailabz', 'engfailabz', 'efailegpd', 'engoutabz', 'eturnabz', 'efail abz', 'engfail abz', 'efail egpd', 'engout abz', 'eturn abz']
gla_commands = ['glfail', 'engfailgla', 'efailegpf', 'engoutgla', 'eturngla', 'efail gla', 'engfail gla', 'efail egpf', 'engout gla', 'eturn gla']

# 分支判断可简化为
elif answer in abz_commands:
    # 原有16/34跑道的逻辑保持不变
elif answer in gla_commands:
    # 原有05/23跑道的逻辑保持不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:54:04