2014-12-07 3 views
0

저는 초급 프로그래밍 클래스에서 마지막으로 공부하고 있습니다. 나는이 질문을 중간 고사 때 잘못 받았다. 대답은 1이지만 대답은 실제로 0입니다. 누군가가 왜 그것이 0인지 설명 할 수 있는지 궁금합니다. 원래 z가 원래 0으로 지정 되었기 때문입니까? 이 한정된 코드를 가진 지역 변수인지 어떻게 알 수 있을지 모르겠습니다. 당신이 제공 한 도움에 감사드립니다!for 루프 외부의 값을 인쇄하십시오.

z=0 
for x in range(1, 200, -1): 
    z=z+1 
print(z) 
+2

가변 범위와 관련이 없습니다. 범위를 (1, 200, 1)로 변경하고 결과를 관찰하면 아하 (aha) 순간을 갖게 될 것이라고 생각합니다. –

답변

4

range(1, 200, -1)에는 요소가 없으므로 루프도 시작되지 않습니다. 따라서 z은 결코 그 값을 변경하지 않았습니다. 단계에 대한

읽기 (범위의 세 번째 인수는) 여기 arg를 :

print(list(range(1, 200, -1))) 
>>> [] 
1

당신은 그것을 테스트해야합니다 :

https://docs.python.org/2/library/functions.html#range

이 볼 수있는 좋은 방법은 나열 할 범위를 변환입니다 통역관에 나가. 루프는 결코 반복을하지 않습니다. 증가되고있는 것을 생각해보십시오.

범위는 1에서 200이지만 1에서 시작할 때마다 -1 씩 증가하기 때문에이 경우 뒤로 이동할 수 없습니다.

1

범위는 1,200이지만 -1로 스테핑하므로 for 루프 내의 표현식이 실제로 실행되지 않습니다.