【问题标题】:Why The Stack code have problem in 'P' and 'O'?为什么 Stack 代码在 \'P\' 和 \'O\' 中有问题?
【发布时间】:2022-12-31 20:25:33
【问题描述】:

为什么当我在这段代码中写“P”时,它没有打印列表?

queue = []

while True:
    order = input("Enter an order: ")
    if order.isalpha():
        queue.append(order)
        print(queue)
    elif order == 'O':
        if len(queue) > 0:
            queue.pop(0)
            print(queue)
    elif order == 'P':
        print(queue)
    else:
        break

【问题讨论】:

  • 检查"P".isalpha()...
  • 您需要输入大写字母“P”或“O”

标签: python data-structures stack


【解决方案1】:

'O' 和 'P' 字符被您的第一个条件 if order.isalpha() 捕获。你应该把这个放在最后,因为首先你想检查它是否等于'O'或'P',然后如果它不是这两个选项之一,那么你想继续最后一个条件。

queue = []

while True:
    order = input("Enter an order: ")
    if order == 'O':
        if len(queue) > 0:
            queue.pop(0)
            print(queue)
    elif order == 'P':
        print(queue)
    elif order.isalpha():
        # The input was not O or P, now we will perform logic for other characters
        queue.append(order)
        print(queue)
    else:
        break

【讨论】:

  • 谢谢,但是为什么当我打印 P 时代码没有停止?
  • 很乐意提供帮助 :) 如果您希望它在您键入 P 时停止,那么您需要将 break 语句放在 order == 'P' 块中。
猜你喜欢
  • 2011-03-16
  • 2011-09-12
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2016-11-19
  • 2018-09-20
  • 1970-01-01
相关资源
最近更新 更多