다음 Python 프로그램의 출력값을 쓰시오.
def numbers():
value = 1
for step in range(3):
value += step
yield value
g = numbers()
print(next(g), sum(g), list(g))모범답안
1 6 []
풀이와 판단 근거
첫 next 호출은 step=0에서 value가 1인 상태로 첫 값을 반환한다. sum(g)는 같은 제너레이터의 남은 실행을 이어가 step=1의 2와 step=2의 4를 더해 6을 만든다.
제너레이터는 한 번 소비된 값을 다시 만들지 않으므로 sum이 끝난 뒤 list(g)는 빈 리스트가 된다.
자주 틀리는 지점
- sum(g)가 첫 값까지 다시 포함해 7이라고 계산
- list(g)가 전체 값 [1,2,4]를 다시 만든다고 판단
- range(3)을 1,2,3으로 해석
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.