gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:33:02 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com