重新思考 Python 中的迭代变量修改
当使用 Python 的 for 循环迭代序列时,如果尝试修改迭代变量。考虑以下 Python 代码:
for i in range(0, 10): if i == 5: i += 3 print(i)
预期输出:
0 1 2 3 4 8 9
但是,实际输出不同:
0 1 2 3 4 8 6 7 8 9
为什么 ' 的值不同i' 在循环内没有改变,可以做什么来纠正它?
原因在于如何Python 中的循环操作。每次循环迭代都涉及创建新范围并向迭代变量分配新值。修改循环中的迭代变量只会影响当前迭代中的值,而后续迭代不受影响。
要实现预期的行为,可以使用 while 循环。这是更正后的代码:
i = 0 while i < 10: # Perform operations and modify 'i' as needed if i == 5: i += 3 print(i) # Increment 'i' manually within the loop i += 1
此方法创建单个作用域,并允许对“i”的修改在整个循环执行过程中持续存在。
以上是为什么在 Python 中修改 For 循环的迭代变量不能按预期工作,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!