【问题标题】:Understanding python while loop [closed]了解python while循环[关闭]
【发布时间】:2020-05-27 09:03:08
【问题描述】:

假设我有一个队列,

queue = [1]

当我运行一个while循环时

while queue:
    queue.pop(0)
    print("Hello World")

为什么这段代码没有终止并输出 hello world?

【问题讨论】:

  • 你能编辑你的问题并显示输出吗?
  • 它对我有用。它应该只运行一次,因为queue 只包含一个元素。

标签: python list python-2.7


【解决方案1】:

因为您已经在循环中,并且 queue 仅在再次打印语句后才被检查。 .pop() 也删除最后一个值,所以如果列表中有 1 个值,只需使用 .pop()

【讨论】:

    【解决方案2】:

    在循环的每次迭代之前测试条件,而不是在循环体内的每个语句之后。所以即使queue.pop(0)清空了列表,你仍然执行下一条语句并打印消息。

    然后它回到开头并再次测试queue。这次条件失败,循环终止。

    【讨论】:

    • 我什至没有想到初学者会认为这就是循环条件的工作方式。很好的收获。
    • 他是用英文读的。如果有人告诉你在太阳下山时执行一堆步骤,你会在太阳下山时停止。
    【解决方案3】:

    因为queue 是一个非零列表。任何非零都被认为是真实的。这就是为什么while 循环将继续运行并且不会终止的原因。

    不过,以上是一个笼统的概念。对于这个特定问题,您的代码运行良好。

    queue = [1]
    while queue:
        queue.pop(0)
        print("Hello World")
    

    它只运行一次。

    【讨论】:

      猜你喜欢
      • 2018-08-15
      • 1970-01-01
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      相关资源
      最近更新 更多