Python使用带有列表名的while循环

Python使用带有列表名的while循环,python,list,while-loop,Python,List,While Loop,我是python的初学者,所以这可能很容易,但我不确定下面的代码是什么意思 q=[start] while q: 这是否意味着当列表中至少有一个元素q时执行它,当它为空时q变为false? 编辑:我现在无法执行它,我需要快速找到它。行q=[start]意味着创建一个名为q的变量,并为其赋值[start]。在这种情况下,它将创建一个包含一个元素的列表:变量start的值。它的语法与q=[1,2]完全相同,但它使用变量而不是常量值 在此之后,while q:行是Python类型转换系统的使

我是python的初学者,所以这可能很容易,但我不确定下面的代码是什么意思

q=[start]
    while q:
这是否意味着当列表中至少有一个元素q时执行它,当它为空时q变为false?
编辑:我现在无法执行它,我需要快速找到它。

q=[start]
意味着创建一个名为
q
的变量,并为其赋值
[start]
。在这种情况下,它将创建一个包含一个元素的列表:变量
start
的值。它的语法与
q=[1,2]
完全相同,但它使用变量而不是常量值

在此之后,while q:行是Python类型转换系统的使用(或滥用)。While循环需要一个布尔条件来知道它们是否应该重复,因此您的代码相当于
While bool(q):
。为了了解这是如何工作的,让我们检查一下可能的情况:

bool([1]) == True # This applies for any non-empty list
bool([]) == False # This applies to any empty list

因此,
while q:
的含义实际上是“while
q
非空”。

q=[start]
意味着“创建一个名为
q
的列表,并将变量
start
作为第一个元素放入”<代码>而q:表示“重复以下缩进块,直到其为空”(因为列表强制为布尔值
True
,而非空,而
False
,而为空)。缩进是否如您在此处所示?如果是这样,它将无法正确运行。这只是代码的一部分。因此我的假设是正确的。感谢您的评论,您可以将其作为答案编写,我将接受它。