2017-05-14 127 views
1

我對Python和編程很新。我現在正在學習循環,並嘗試了下面的代碼來看看會發生什麼。我想知道的是爲什麼下面的代碼不會崩潰或不斷重複「羅伯特」。循環內的變量Del

謝謝。

name = ["Robert", "Mike", "Garry", "Alex"] 
for y in name: 
    print(y) 
    del y 

print("END") 
+0

所以你會問,爲什麼它的工作原理? –

+0

'for'循環遍歷'name'變量中的值。第一次將變量'y'設置爲「Robert」。下一次它將「y」設置爲「Mike」。下一次它將「y」設置爲「Garry」。等等...... – lit

回答

1

for循環的每次迭代都創建一個「新」y。通過每次刪除此y,您只需刪除屬於該迭代的y。它在下一次迭代開始時再次「重新創建」。

del不會改變這段代碼的結果。

+0

Python沒有塊範圍。 – kindall

+0

如果計算機/程序在每一輪循環中重置了y變量,它會如何記住它已經通過之前的項目? python中是否有一些隱藏的變量正在跟蹤或什麼? – Gnomon

+0

是的。它要麼使用內部索引,要麼使用迭代器協議。在這種情況下,它是一個列表,所以它使用了一個索引。 – kindall

0

該代碼的工作原理是因爲在刪除名稱y後,在循環的下一次迭代中再次創建它。

如果您嘗試循環後打印y,你會看到,它不會與del語句工作。