gpt4 book ai didi

python - Python 中的“For”循环行为

转载 作者:太空狗 更新时间:2023-10-29 18:13:35 26 4
gpt4 key购买 nike

为什么下面的简单循环在循环结束时没有保存 i 的值?

for i in range( 1, 10 ):
print i
i = i + 3

上面的打印:

1
2
3
4
5
6
7
8
9

但它应该打印:

1
4
7

最佳答案

for sets i 每次迭代,到被迭代对象的下一个值。无论您在循环中将 i 设置为什么,此时都将被忽略。

来自for statement documentation :

The suite is then executed once for each item provided by the iterator, in the order of ascending indices. Each item in turn is assigned to the target list using the standard rules for assignments, and then the suite is executed.

i 是这里的目标列表,因此它被分配了 range(1, 10) 对象中的每个值。稍后将 i 设置为其他值不会改变 range(1, 10) 表达式产生的结果。

如果您想在改变i 的地方生成一个循环,请改用while 循环;它每次都通过以下方式重新测试条件:

i = 1
while i < 10:
print i
i += 3

但是在一个步骤中使用 range() 会更容易,预先生成值:

for i in range(1, 10, 3):
print i

关于python - Python 中的“For”循环行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35768738/

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