我有一个关于Python3.6中的for和while循环的问题:
为什么while循环中的变量可以影响这个循环,而for循环中的变量却不能?有没有办法让后一种方式也起作用?
我正在使用Python来计算一道数学题,该算法使用与代码块中的第一个循环相同的for循环。 但随着该循环中变量 a 的值发生变化,for 循环的范围保持不变。
所以我使用 while 循环来实现我的目标,并且它成功了。 我对此的猜测是,范围(一组元素)一旦运行就决定了,或者 for 循环不具有与 while 循环相同的“性质”。
a = 28
for i in range(1,a):
a = a - 5
# outcomes: a = -107, i =27
a = 28
i = 1
while i < a:
a = a - 5
i = i + 1
# outcomes: a = 3, i = 6
最佳答案
a = 28
for i in range(1,a):
a = a - 5
阅读:从a
中减去5,27次。
a = 28
i = 1
while i < a:
a = a - 5
i = i + 1
阅读:只要 i
小于 a
,就不断从 a
中减去 5。
显然,这两种说法并不相同。 for
循环预先计算范围,并且迭代是固定的,无论 a
的值如何。对于 while
来说,在每次新迭代时都会使用 a
的最新值重新测试条件,以考虑您看到的差异。
关于python - 为什么这些 for 和 while 循环的迭代方式不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46574885/