더북(TheBook)

다음으로 반복 구간인 1부터 50까지의 수를 range() 명령어를 사용해 데이터 묶음 위치에 넣습니다. 이때 반복 범위는 range(1, 51)을 사용해야 함을 잊지 마세요! 반복할 때마다 변수 iresult에 더합니다. result += iresult = result + i를 줄여 쓴 표현입니다. 덧셈을 50번 반복하고 나면 최종 결괏값을 출력합니다. print(result)는 들여쓰기를 하지 않았으니 반복문 외부에 있습니다. 따라서 반복문이 종료되고 나면 실행됩니다.

result 변수를 반복문 내부에 만들면 어떻게 될까요?

for i in range(1, 51):
반복되는 명령어
result = 0
result += i
print(result)
실행결과
50

결과는 50이 나옵니다. 왜 그럴까요? result에 초깃값 0을 저장하는 코드 result = 0도 반복되기 때문이죠. result 변수를 만드는 코드를 반복문 내부에 넣으면 첫 번째 반복에서 result에 0을 넣고, 다음 줄에서 result에 1을 더합니다. 두 번째 반복에서 result에 다시 0을 넣은 뒤에 2를 더합니다. 이런 식으로 50까지 반복해도 더한 결괏값 result에 0을 넣는 것도 반복되기 때문에 결과적으로 result에 0을 넣고 여기에 마지막 i 값을 더한 50이 출력됩니다. 이는 반복문을 처음 배울 때 많이 하는 실수입니다. 다음 코드 역시 흔히 하는 실수 중 하나입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.