列表:-为什么描述中的第一个 for 循环以无限循环结束,而第二个 for 循环工作得很好

Lists:-Why does 1st for loop in the description ends up infinite loop while 2nd for loop works really well

对于循环 1

li=[]

for i in li:
    li.append(i**2)

print (li)

"""Error...: Traceback (most recent call last):

  File "<ipython-input-29-c20734da477f>", line 2, in <module>
    li.append(i**2)

KeyboardInterrupt"""

对于循环 2

li=[]

for i in range(0,n):
    li.append(i**2)

print (li)

两者都应该有效,但第一个 for 循环进入无限 loop.Why??

第一个循环甚至没有执行,因为 li 是空的。

尽管如此,在 li 不为空的情况下,例如 li = [1],您会不断向其中添加元素,因此 for i in li 将始终有要迭代的元素通过。您在浏览列表的同时也在增加它。

使用范围,您可以将迭代次数限制在该特定范围内。遍历项目范围后,循环停止。

简而言之,这些不是相似的循环。