2026. 7. 11. 15:20ㆍ파이썬
홀수만 더하고 반복문을 빠져나오다
while 조건, 누적 합계, 반복 종료 후 변수값 추적
1. 문제
다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.
i, hap = 1, 0
while i <= 6:
hap += i
i += 2
print(f"i={i}, hap={hap}")
2. 주요 포인트
이 문제에서는 다음 내용을 확인해야 합니다.
① 여러 변수에 값 대입
i, hap = 1, 0
두 변수에 각각 값을 저장합니다.
i = 1
hap = 0
② while 반복 조건
while i <= 6:
변수 i가 6보다 작거나 같은 동안 반복합니다.
조건이 거짓이 되면 반복문을 종료합니다.
③ 누적 연산자 +=
hap += i
다음 코드와 같은 의미입니다.
hap = hap + i
현재 hap에 i의 값을 계속 더합니다.
④ i가 2씩 증가
i += 2
다음 코드와 같습니다.
i = i + 2
i는 다음과 같이 변합니다.
1 → 3 → 5 → 7
따라서 hap에는 홀수인 1, 3, 5가 더해집니다.
⑤ f-string 출력
print(f"i={i}, hap={hap}")
중괄호 안에 있는 변수의 실제 값을 문자열에 넣어 출력합니다.
3. 풀이
3-1. 초기값 확인
i, hap = 1, 0
반복문 실행 전 변수의 값은 다음과 같습니다.
i = 1
hap = 0
3-2. 첫 번째 반복
현재 i의 값은 1입니다.
1 <= 6 → 참
따라서 반복문을 실행합니다.
hap += i
hap = 0 + 1
hap = 1
다음으로 i에 2를 더합니다.
i += 2
i = 1 + 2
i = 3
첫 번째 반복 후:
i = 3
hap = 1
3-3. 두 번째 반복
현재 i의 값은 3입니다.
3 <= 6 → 참
누적 합계를 계산합니다.
hap = 1 + 3
hap = 4
i에 2를 더합니다.
i = 3 + 2
i = 5
두 번째 반복 후:
i = 5
hap = 4
3-4. 세 번째 반복
현재 i의 값은 5입니다.
5 <= 6 → 참
누적 합계를 계산합니다.
hap = 4 + 5
hap = 9
i에 2를 더합니다.
i = 5 + 2
i = 7
세 번째 반복 후:
i = 7
hap = 9
3-5. 반복 조건 재확인
현재 i는 7입니다.
7 <= 6 → 거짓
조건이 거짓이므로 반복문을 종료합니다.
반복문이 종료된 후에도 i의 값은 다시 5로 돌아가지 않습니다.
마지막에 증가한 값인 7이 그대로 유지됩니다.
4. 반복 과정 한눈에 보기
구분반복 전 i조건 i <= 6더한 값반복 후 hap반복 후 i
| 초기값 | 1 | 0 | 1 | ||
| 1회차 | 1 | 참 | 1 | 1 | 3 |
| 2회차 | 3 | 참 | 3 | 4 | 5 |
| 3회차 | 5 | 참 | 5 | 9 | 7 |
| 조건 확인 | 7 | 거짓 | 없음 | 9 | 7 |
누적된 값은 다음과 같습니다.
1 + 3 + 5 = 9
5. 최종 출력문
print(f"i={i}, hap={hap}")
반복문이 끝난 후 변수의 값은 다음과 같습니다.
i = 7
hap = 9
이를 f-string에 대입하면 다음과 같습니다.
print(f"i={7}, hap={9}")
6. 정답
i=7, hap=9
7. 시험에서 주의할 부분
6은 합계에 포함되지 않습니다
반복 조건은 다음과 같습니다.
while i <= 6:
그러나 i는 2씩 증가하기 때문에 다음 값만 가집니다.
1, 3, 5, 7
i가 정확히 6이 되는 경우는 없습니다.
따라서 합계는 다음과 같습니다.
1 + 3 + 5 = 9
반복 종료 후 i는 7입니다
세 번째 반복에서 i가 5일 때 반복문이 실행됩니다.
반복문 내부에서 다음 코드가 실행됩니다.
i += 2
따라서 i는 7이 된 후 조건을 다시 검사합니다.
7 <= 6 → 거짓
최종 i 값은 5가 아니라 7입니다.
8. 시험 풀이 요약
i는 1에서 시작하여 반복할 때마다 2씩 증가하므로
1, 3, 5가 반복문에서 사용된다.
hap에는 1, 3, 5가 차례로 누적되어
1 + 3 + 5 = 9가 된다.
세 번째 반복 후 i는 7이 되고,
7 <= 6이 거짓이므로 반복문이 종료된다.
따라서 출력 결과는 다음과 같다.
i=7, hap=9
'파이썬' 카테고리의 다른 글
| 중첩 리스트를 순회해 원소 개수와 합계 구하기(Chatgpt) (0) | 2026.07.11 |
|---|---|
| Python while 반복문과 f-string 문제 풀이(Claude) (0) | 2026.07.11 |
| Python 문자열 포맷 (폭과 정밀도) 문제 풀이(Claude) (0) | 2026.07.11 |
| 네 글자만 남기고, 열 칸에 정렬하기(Chatgpt) (0) | 2026.07.11 |
| Python 클래스 변수와 반복문 문제 풀이(Claude) (0) | 2026.07.11 |