重新思考 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中文網其他相關文章!