2017-05-14 6 views
1

저는 파이썬과 프로그래밍에있어 매우 새롭습니다. 지금 당장 루프에 대해 배우고 다음 코드를 통해 무슨 일이 일어날지를 보았습니다. 내가 알고 싶은 것은 왜 다음 코드가 충돌하거나 "Robert"를 계속 반복하지 않는지입니다.루프 내의 변수 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"로 설정할 때. etc ... – lit

답변

1

for 루프를 반복 할 때마다 "새로운"y이 생성됩니다. 매번 y을 삭제하면 해당 반복에 속하는 y 만 삭제됩니다. 다음 반복의 시작시 다시 "다시 작성"됩니다.

del은이 코드의 결과를 전혀 변경하지 않습니다.

+0

파이썬에는 블록 범위가 없습니다. – kindall

+0

컴퓨터/프로그램은 루프의 각 라운드에서 y 변수를 재설정하는 경우 이전 항목을 이미 거쳤다는 것을 어떻게 기억합니까? 거기에 추적 또는 뭔가를 유지하는 파이썬 내 숨겨진 된 변수가 있나요? – Gnomon

+0

예. 그것은 내부 색인을 사용하거나 iterator 프로토콜을 사용 중입니다. 이 경우 인덱스이므로 인덱스를 사용합니다. – kindall

0

코드는 y이라는 이름을 삭제 한 후에 루프의 다음 반복에서 다시 만들어지기 때문에 코드가 작동합니다. 그것이 작동하는 이유는 그래서 당신은 당신이 루프 후 y를 인쇄하려고하면

, 당신이에 del 문 작동하지 않습니다 것을 볼 수 있습니다.