파이썬 슬라이싱 — "기차 칸" 비유로 이해하기(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가지

  1. 인덱스는 항상 0부터 시작 "6번째 글자"가 아니라 "인덱스 6번"은 사실 7번째 글자입니다.
  2. [a:b]에서 b는 울타리 바깥 b번 칸은 절대 포함되지 않는다는 걸 항상 체크하세요.
  3. [::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이다.


🧠 미니 퀴즈

  1. "Python"[1::2]의 결과는 무엇일까요? (힌트: 이번엔 짝수 대신 홀수 인덱스)
  2. "programming"[-3:]은 어떤 글자들을 가져올까요?
  3. end='*' 대신 end=''로 바꾸면 두 출력이 어떻게 붙을까요?
  4. 입력값을 "HELLO world"로 바꿔서 capitalize()를 적용하면 결과는?

정답

  1. "ytn" — 인덱스 1, 3, 5번 문자
  2. "ing" — 뒤에서 3글자
  3. 아무 문자도 없이 바로 붙음 → Ptogra
  4. "Hello world" — 첫 글자만 대문자, 나머지는 소문자