我对Python3.6中的for和while循环有疑问:
为什么while循环中的变量会影响这个循环,for循环中的变量不能?有没有办法使后一种方式也有效?
我正在使用Python来计算数学问题,该算法使用与代码块中的第一个相同的for循环。 但随着此循环中变量a的值发生变化,for-loop的范围仍然存在。
所以我使用while循环来实现我的目标并且它经历了。 我对此的猜测是,一个范围(一组元素)一旦被运行就被决定,或者一个for循环不具有相同的性质'作为一个循环。
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
答案 0 :(得分:2)
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
阅读:只要a
小于i
,就保持从a
减去5。
for
的值如何,a
循环都会预先计算范围,并且迭代是固定的。在while
的情况下,在每次新迭代时重新测试条件a
的最新值,并考虑您看到的差异。