Python 문자열 슬라이싱과 % 포맷 결합 문제 풀이(Claude)
2026. 7. 11. 15:46ㆍ파이썬
📌 문제
다음 Python으로 구현된 프로그램을 분석하여 알맞는 출력 결과를 작성하시오.
a = "REMEMBER NOVEMBER"
b = a[0:3] + a[12:16]
c = "R AND %s" % "STR"
print(b + c)
단계별 실행
1행 — a의 인덱스 확인
인덱스: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
문자: R E M E M B E R ' ' N O V E M B E R
2행 — b = a[0:3] + a[12:16]
a[0:3] → 0, 1, 2번 인덱스 (3번은 포함 안 됨)
0:R, 1:E, 2:M → "REM"
a[12:16] → 12, 13, 14, 15번 인덱스 (16번은 포함 안 됨)
12:E, 13:M, 14:B, 15:E → "EMBE"
b = "REM" + "EMBE" = "REMEMBE"
3행 — c = "R AND %s" % "STR"
%s는 문자열로 치환되는 자리입니다.
c = "R AND STR"
4행 — print(b + c)
"REMEMBE" + "R AND STR"
b의 끝("REMEMBE")과 c의 시작("R AND STR")이 이어지면서, 마치 원래 단어 "REMEMBER"처럼 보이는 부분이 만들어집니다.
REMEMBE + R AND STR = REMEMBER AND STR
✅ 최종 실행 결과
REMEMBER AND STR
⚠️ 함정 포인트
- a[0:3]은 3번 인덱스를 포함하지 않음 — "REM"이지 "REME"가 아닙니다. 슬라이싱의 종료 인덱스는 항상 "그 앞까지"입니다.
- b는 "REMEMBE"로, R이 하나 빠진 상태 — 이게 c의 첫 글자 "R"과 자연스럽게 이어지면서 마치 원래 단어처럼 보이는 게 이 문제의 함정입니다.
- %s는 값을 문자열 그대로 삽입 — 숫자든 문자열이든 %s는 str()로 바꾼 것처럼 그대로 끼워 넣습니다.
- b + c는 단순 문자열 결합(concatenation) — 공백이 자동으로 들어가지 않으므로, 정확히 글자 그대로 붙습니다.
🎯 핵심 개념 정리
문자열 슬라이싱
문자열[시작:종료]
종료 인덱스는 포함되지 않습니다.
"REMEMBER"[0:3] # "REM"
문자열 이어붙이기 (+)
"abc" + "def"
# → "abcdef"
% 포맷 연산자
"%s" % 값
%s는 값을 문자열로 변환해 그 자리에 넣습니다.
"Hello, %s!" % "World"
# → "Hello, World!"
✍️ 시험 답안용 한 줄 풀이
a[0:3]은 "REM", a[12:16]은 "EMBE"이므로 b는 "REMEMBE"이다. c는 %s 자리에 "STR"이 들어간 "R AND STR"이다. 이 둘을 이어붙이면 b의 끝과 c의 시작이 자연스럽게 연결되어 "REMEMBER AND STR"이 출력된다.
🧠 미니 퀴즈
- a[12:16]을 a[12:17]로 바꾸면 b는 어떻게 바뀔까요?
- c = "R AND %s" % "STR"을 c = "%s AND R" % "STR"로 바꾸면 print(b + c)의 결과는?
- a[0:3]을 a[0:4]로 바꾸면 최종 결과는 어떻게 바뀔까요?
정답
- a[12:17]은 인덱스 12~16번 → "EMBER"이므로 b = "REM" + "EMBER" = "REMEMBER"가 됩니다.
- c = "STR AND R"이 되므로, print(b + c) = "REMEMBE" + "STR AND R" = "REMEMBESTR AND R"
- a[0:4]는 "REME"이므로 b = "REME" + "EMBE" = "REMEEMBE", 최종 결과는 "REMEEMBER AND STR"
'파이썬' 카테고리의 다른 글
| 텔레그램 봇으로 Google Calendar 일정 등록하기 (0) | 2026.07.25 |
|---|---|
| 🎯 파이썬으로 숫자 맞히기 게임 만들기 (1) | 2026.07.19 |
| 문자열 조각을 이어 문장 완성하기(Chatgpt) (0) | 2026.07.11 |
| Python 2차원 리스트 인덱싱과 중첩 반복 출력 문제 풀이(Claude) (0) | 2026.07.11 |
| 좌표처럼 값을 꺼내고 행 단위로 출력하기(Chatgpt) (0) | 2026.07.11 |