为何这段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
相关产品推荐
相关产品推荐

