2026. 7. 11. 15:45ㆍ파이썬
슬라이싱과 %s 문자열 포매팅 분석
1. 문제
다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.
a = "REMEMBER NOVEMBER"
b = a[0:3] + a[12:16]
c = "R AND %s" % "STR"
print(b + c)
2. 주요 포인트
이 문제에서는 다음 내용을 확인해야 합니다.
① 문자열 인덱스는 0부터 시작한다
문자열의 첫 번째 문자는 0번 인덱스입니다.
② 슬라이싱의 종료 위치는 포함하지 않는다
문자열[시작:종료]
시작 인덱스부터 종료 인덱스 직전까지 가져옵니다.
③ +는 문자열을 연결한다
문자열1 + 문자열2
두 문자열을 하나로 이어 붙입니다.
④ %s에는 문자열이 들어간다
"R AND %s" % "STR"
%s 자리에 문자열 "STR"이 들어갑니다.
3. 풀이
3-1. 문자열의 인덱스 확인
a = "REMEMBER NOVEMBER"
문자열의 각 문자와 인덱스를 확인하면 다음과 같습니다.
인덱스 : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
문자 : R E M E M B E R N O V E M B E R
8번 인덱스에는 공백이 들어 있습니다.
3-2. 첫 번째 슬라이싱
a[0:3]
0번부터 3번 직전까지이므로 0, 1, 2번 문자를 가져옵니다.
0번 → R
1번 → E
2번 → M
결과는 다음과 같습니다.
REM
3-3. 두 번째 슬라이싱
a[12:16]
12번부터 16번 직전까지이므로 12, 13, 14, 15번 문자를 가져옵니다.
12번 → E
13번 → M
14번 → B
15번 → E
결과는 다음과 같습니다.
EMBE
3-4. 변수 b 계산
b = a[0:3] + a[12:16]
앞에서 구한 문자열을 연결합니다.
"REM" + "EMBE"
따라서 b의 값은 다음과 같습니다.
REMEMBE
아직 마지막 문자 R이 없는 상태입니다.
3-5. 변수 c 계산
c = "R AND %s" % "STR"
%s 자리에 "STR"이 들어갑니다.
R AND STR
따라서 c의 값은 다음과 같습니다.
R AND STR
c의 첫 글자인 R이 앞에서 부족했던 "REMEMBE"의 마지막 글자 역할을 합니다.
3-6. 최종 문자열 연결
print(b + c)
b와 c를 연결합니다.
b = "REMEMBE"
c = "R AND STR"
따라서 다음과 같이 연결됩니다.
"REMEMBE" + "R AND STR"
REMEMBER AND STR
4. 실행 흐름 한눈에 보기
a[0:3] → REM
a[12:16] → EMBE
b = REM + EMBE
= REMEMBE
"R AND %s" % "STR"
→ R AND STR
REMEMBE + R AND STR
→ REMEMBER AND STR
5. 정답
REMEMBER AND STR
6. 시험에서 주의할 부분
슬라이싱의 종료 인덱스는 포함하지 않는다
a[0:3]
0, 1, 2번 문자만 가져옵니다.
3번 문자는 포함하지 않습니다.
중간에 공백이 자동으로 생기는 것은 아니다
b + c
두 문자열은 그대로 연결됩니다.
이 문제에서는 c가 다음 문자열이기 때문에 결과에 공백이 포함됩니다.
R AND STR
%s는 문자열 치환 형식이다
"R AND %s" % "STR"
%s가 그대로 출력되는 것이 아니라 "STR"로 변경됩니다.
7. 시험 풀이 요약
a[0:3]은 "REM"이고, a[12:16]은 "EMBE"입니다.
두 문자열을 연결하면 b는 "REMEMBE"가 됩니다.
"R AND %s" % "STR"의 결과는 "R AND STR"입니다.
마지막으로 두 문자열을 연결하면 다음 결과가 출력됩니다.
REMEMBER AND STR
'파이썬' 카테고리의 다른 글
| 🎯 파이썬으로 숫자 맞히기 게임 만들기 (1) | 2026.07.19 |
|---|---|
| Python 문자열 슬라이싱과 % 포맷 결합 문제 풀이(Claude) (0) | 2026.07.11 |
| Python 2차원 리스트 인덱싱과 중첩 반복 출력 문제 풀이(Claude) (0) | 2026.07.11 |
| 좌표처럼 값을 꺼내고 행 단위로 출력하기(Chatgpt) (0) | 2026.07.11 |
| Python 클래스와 메서드 정의 빈칸 채우기 문제 풀이(Claude) (0) | 2026.07.11 |