首頁  >  文章  >  後端開發  >  為什麼在 Python 中修改 For 循環的迭代變數不能如預期運作,如何修復?

為什麼在 Python 中修改 For 循環的迭代變數不能如預期運作,如何修復?

Patricia Arquette
Patricia Arquette原創
2024-11-24 01:15:10763瀏覽

Why Doesn't Modifying a For Loop's Iteration Variable Work as Expected in Python, and How Can It Be Fixed?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn