파이썬 슬라이싱 — "기차 칸" 비유로 이해하기(Claude)
2026. 7. 11. 10:24ㆍ파이썬
파이썬 문자열은 기차 칸처럼 생각하면 훨씬 쉬워집니다. 각 칸(인덱스)에 글자 하나씩 들어있고, 슬라이싱은 "몇 번 칸부터, 몇 번 칸까지, 몇 칸씩 건너뛰면서 뽑을지" 정하는 규칙입니다.
📌 문제
x = input()
x = x.capitalize()
y = x.split()
print(y[0][::2], end='*')
print(y[1][3:6])
입력값: Python programming 정답: Pto*gra
1. "Python"[::2] — 두 칸씩 건너뛰기
인덱스: 0 1 2 3 4 5
문자: P y t h o n
선택: ✅ ✅ ✅
[::2]는 0번부터 시작해서 2칸씩 이동하며 문자를 고릅니다.
0번 → P
2번 → t
4번 → o
→ 결과: Pto
회색으로 표시한 1번(y), 3번(h), 5번(n) 칸은 건너뜁니다.
end='*'가 있으므로 줄바꿈 대신 *를 붙여서 → Pto*
2. "programming"[3:6] — 구간으로 자르기
인덱스: 0 1 2 3 4 5 6 7 8 9 10
문자: p r o g r a m m i n g
선택: ✅ ✅ ✅
└──── 3번부터 6번 "직전"까지 ────┘
[3:6]은 3번 인덱스부터 6번 인덱스 직전까지를 의미합니다. 6번 칸(m)은 "울타리 바깥"이라서 포함되지 않습니다.
3번 → g
4번 → r
5번 → a
→ 결과: gra
3. 최종 결합
출력 내용
| 첫 번째 print() | Pto* (줄바꿈 없음) |
| 두 번째 print() | gra |
한 줄로 이어지면 → Pto*gra
🎯 제가 이 문제를 가르칠 때 강조하는 3가지
- 인덱스는 항상 0부터 시작 "6번째 글자"가 아니라 "인덱스 6번"은 사실 7번째 글자입니다.
- [a:b]에서 b는 울타리 바깥 b번 칸은 절대 포함되지 않는다는 걸 항상 체크하세요.
- [::n]은 "n칸마다 한 번씩" n=2면 홀수 인덱스 또는 짝수 인덱스 중 하나만 골라내는 셈입니다.
🧩 핵심 개념 정리
capitalize()
문자열 전체에서 첫 글자만 대문자로, 나머지는 소문자로 바꿉니다.
"PYTHON PROGRAMMING".capitalize()
# 결과: "Python programming"
⚠️ 각 단어의 첫 글자를 바꾸는 함수가 아닙니다. 문자열 전체 기준입니다.
split()
공백을 기준으로 문자열을 나눠 리스트로 반환합니다.
"Python programming".split()
# 결과: ["Python", "programming"]
슬라이싱 문법
문자열[시작:종료:간격]
- 종료 인덱스는 포함되지 않음
- 간격을 지정하면 그 칸수만큼 건너뜀
end 옵션
print()는 기본적으로 줄바꿈하지만, end를 지정하면 그 문자로 대체됩니다.
print("Python", end="*")
print("Java")
# 결과: Python*Java
✍️ 시험 답안용 한 줄 풀이
x.split()으로 "Python"과 "programming"을 나눈 후, "Python"에서 두 칸 간격의 문자 Pto를 출력하고 *를 붙인다. 이어서 "programming"의 3번부터 5번 인덱스까지인 gra를 출력하므로 결과는 Pto*gra이다.
🧠 미니 퀴즈
- "Python"[1::2]의 결과는 무엇일까요? (힌트: 이번엔 짝수 대신 홀수 인덱스)
- "programming"[-3:]은 어떤 글자들을 가져올까요?
- end='*' 대신 end=''로 바꾸면 두 출력이 어떻게 붙을까요?
- 입력값을 "HELLO world"로 바꿔서 capitalize()를 적용하면 결과는?
정답
- "ytn" — 인덱스 1, 3, 5번 문자
- "ing" — 뒤에서 3글자
- 아무 문자도 없이 바로 붙음 → Ptogra
- "Hello world" — 첫 글자만 대문자, 나머지는 소문자
'파이썬' 카테고리의 다른 글
| Python 리스트·문자열 함수 분석 문제 풀이(Claude) (0) | 2026.07.11 |
|---|---|
| 문자열은 나누고, 숫자는 골라내기(Chatgpt) (0) | 2026.07.11 |
| Python 문자열 처리 문제(Chatgpt) (0) | 2026.07.11 |
| 파이썬 핵심 개념 커리큘럼 (0) | 2026.07.08 |
| Python 참조하는 모듈 못찾는 오류 (0) | 2025.09.12 |