【发布时间】:2022-01-21 03:27:56
【问题描述】:
我无法理解为什么计数器变量即使在 嵌套循环,对父循环运行的次数没有任何影响!
当嵌套循环内的增量应该阻止它执行第二次和第三次时,下面的代码给出了输出0 1 2。
for i in range(3):
print(i)
for j in range(2):
i = i + 2
嵌套内的i是否指向不同的i!
【问题讨论】:
-
你迭代 range 对象,你期望什么?
-
它在 python 中不是这样工作的。
-
@SashSinha 为什么每次循环运行时都要重新分配“i”!我对循环的理解是“i”将在循环开始时初始化,然后继续使用该值。它与范围调用有关,例如创建上下文“i”!
-
不,这不是 Python 中
for循环的工作方式。它从可迭代对象中消费一个项目并将该项目分配给迭代变量,然后运行块中的代码。重复此操作,直到可迭代对象用完为止。 -
i在每次迭代开始时被分配一个值来自range对象的迭代器;循环第一次开始时它不会被初始化一次。
标签: python python-3.x loops for-loop