为什么for和while循环的迭代方式不同?

2024-04-27 17:34:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于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

Tags: 方法代码in算法元素目标forrange
1条回答
网友
1楼 · 发布于 2024-04-27 17:34:13
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重新测试条件,以说明您看到的差异

相关问题 更多 >