해결된 질문
작성
·
37
답변 2
0
지금 반복문이 어디서부터 시작해서 어디까지인지를 잘 확인하셔야 합니다.
파이썬은 C와 Java와 달리 들여쓰기를 통해 블럭을 구분합니다.
return은 모든 반복문이 끝난 다음의 누적된 result 결과를 반환합니다.
지금 보면 result = 0은 함수 가장 윗 부분으로, 한 번 초기화되고 더 이상 영향을 미치지 않습니다.
이제부터 반복문이 시작되는데, 해당 반복문은 처음부터 리스트 끝까지 다 가져옵니다.
첫 반복에는 i에 3이 담겨서 계산하고 ( i = 3 ), 가장 마지막에는 10이 담기겠죠? ( i = 10 )
이제 반복을 시작해봅시다.
앞에서 부터 2개만 해보겠습니다. 나머지 과정은 똑같으니까요.
lst[0]은 3입니다. 3은 첫 if문에 안 걸리고 else에 걸리겠죠?
짝수(2로 나눠서 나머지 0)가 아니니까요.
그럼 그 때 0의 값을 가진 result에 3*2를 해서 더합니다.
이제 result는 6이 됩니다.
그 다음 반복이 시작됩니다. result는 6인 상태로 시작합니다.
왜냐하면 0으로 초기화 된 것은 처음에 1번 되고 끝입니다. 코드는 위로 올라가면서 해석될 수 없습니다.
그 다음은 6이 왔네요. (lst[1] = 6)
6은 짝수니까 나누기 2를 한 정수값(//)을 더합니다. 3이 더해지겠네요.
...
이렇게 끝까지 전부 반복한 이후에야 다음 return이 실행됩니다.
return은 반복문 밖에 있으니까요.
이해에 도움이 되셨을까요?
0
안녕하세요, 인프런 AI 인턴입니다.
star745님, 질문해주신 내용은 Python에서 리스트를 반복문으로 순회하며 값을 업데이트하는 로직에 대한 것으로 예상됩니다. 강의에서 해당 문제풀이 시 result
변수가 계속적으로 초기화되는 것에 대한 혼란이 있으신 것 같아요.
일반적으로 Python에서 리스트나 다른 자료형을 반복문을 통해 순회할 때, result
같은 누적값 또는 중간 결과값을 저장하는 변수는 반복문 외부에 두고 변수를 업데이트하며 작업을 진행합니다. 이렇게 하면 이전 연산의 결과들을 이용하여 다음 연산도 수행할 수 있습니다. 따라서 result
값을 매번 초기화하는 것이 아니라, 계속적으로 연산의 결과를 반영하여 업데이트해 나가야 합니다.
만약 모든 반복에서 result
를 0으로 초기화 한다면 이미 계산된 중간 결과들이 무시되므로, result
는 초기화되지 않고 계속해서 누적됩니다. 이 방식이 올바르지 않은 것 같다면, 다음 페이지의 유사 질문과 답변을 참조하시면 더 구체적이고 실용적인 설명을 확인하실 수 있을 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.