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

为何这段Python队列代码中'P'与'O'功能异常?输入'P'无法打印队列

问题分析与修复

问题根源

原代码的条件判断顺序出错了:order.isalpha()会先匹配所有字母输入(包括'O'和'P'),导致后面专门处理'O'(出队)、'P'(打印队列)的分支根本不会被执行。

  • 输入'O'时,会被当成普通字母加入队列,而非执行出队操作
  • 输入'P'时,同样会被加入队列,而非打印当前队列

修复后的代码

queue = []

while True:
    order = input("Enter an order: ")
    if order == 'O':
        if len(queue) > 0:
            queue.pop(0)
            print(queue)
        else:
            print("队列是空的,无法出队")
    elif order == 'P':
        print(queue)
    elif order.isalpha():
        queue.append(order)
        print(queue)
    else:
        break

修改说明

  • 把order == 'O'和order == 'P'的判断移到最前面,优先处理这两个特定命令
  • 给'O'命令补充了空队列的提示,避免无操作时没有反馈
  • 普通字母的添加逻辑放在最后,确保只有非'O'/'P'的字母才会被加入队列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:20:41