Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
理解python while循环_Python_List_Python 2.7 - Fatal编程技术网

理解python while循环

理解python while循环,python,list,python-2.7,Python,List,Python 2.7,假设我有一个队列 queue = [1] 当我运行while循环时 while queue: queue.pop(0) print("Hello World") 为什么此代码不终止并输出hello world?因为您已经在循环中,并且只有在再次执行print语句后才会检查队列。另外,.pop()删除最后一个值,因此如果列表中有1个值,只需使用.pop(),因为队列是非零列表。任何非零被认为是正确的。这就是为什么while循环将继续运行并且不会终止的原因 然而,上述是一个一般概

假设我有一个队列

queue = [1]
当我运行while循环时

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

为什么此代码不终止并输出hello world?

因为您已经在循环中,并且只有在再次执行print语句后才会检查
队列。另外,
.pop()
删除最后一个值,因此如果列表中有1个值,只需使用
.pop()

,因为
队列
是非零列表。任何非零被认为是正确的。这就是为什么
while
循环将继续运行并且不会终止的原因

然而,上述是一个一般概念。对于这个特定的问题,您的代码运行良好

queue = [1]
while queue:
    queue.pop(0)
    print("Hello World")
它只运行一次

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


然后它返回到开始处,再次测试
队列
。这一次,条件失败,循环终止。

您能编辑您的问题并显示输出吗?这对我很有效。它应该只运行一次,因为<代码>队列< /> >只包含一个元素。我甚至没有想到初学者会认为这是循环条件如何工作的。接得好。他把它读成了英语。如果有人告诉你在太阳出来的时候执行一系列步骤,你会在太阳一落下就停下来。