【发布时间】:2018-03-16 10:32:01
【问题描述】:
我有一个关于Python3.6中for和while循环的问题:
为什么while循环中的变量可以影响这个循环,而for循环中的变量不能?有没有办法让后一种方式也起作用?
我正在做一道数学题,使用 Python 进行计算,该算法使用与代码块中的第一个相同的 for 循环。 但是随着这个循环中variable-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
【问题讨论】:
-
是的,在 for 循环中,范围是预先计算的,因此迭代修复。在while循环中,每次迭代后根据
a和i的值重新测试条件。 -
您可以在每个循环中添加一个打印语句,以查看@cᴏʟᴅsᴘᴇᴇᴅ 的答案和 Python 循环的运行情况。
-
是的,python
for循环是“for-each”结构
标签: python loops for-loop while-loop iteration