Python 문자열 처리 문제(Chatgpt)

2026. 7. 11. 10:10파이썬

1. 문제

다음 Python 프로그램과 입력값을 보고 실행 결과를 작성하시오.

x = input()
x = x.capitalize()
y = x.split()

print(y[0][::2], end='*')
print(y[1][3:6])

입력값

Python programming

2. 주요 포인트

이 문제에서는 다음 네 가지를 확인해야 합니다.

① capitalize()

x.capitalize()

문자열의 첫 글자를 대문자로 바꾸고, 나머지 글자는 모두 소문자로 바꿉니다.

② split()

x.split()

문자열을 공백을 기준으로 나누어 리스트로 만듭니다.

③ 문자열 슬라이싱

문자열[시작:종료:간격]

문자열에서 필요한 범위의 문자를 선택합니다.

종료 위치의 문자는 포함하지 않습니다.

④ print()의 end 옵션

print(출력값, end='*')

출력 후 줄바꿈을 하지 않고 지정된 문자 *를 이어서 출력합니다.


3. 풀이

3-1. 입력값 저장

x = input()

입력값은 다음과 같습니다.

Python programming

따라서 변수 x에는 다음 문자열이 저장됩니다.

x = "Python programming"

3-2. capitalize() 실행

x = x.capitalize()

capitalize()는 문자열의 첫 글자를 대문자로 만들고 나머지 문자를 소문자로 만듭니다.

Python programming

입력 문자열이 이미 같은 형태이므로 결과는 변하지 않습니다.

x = "Python programming"

3-3. split() 실행

y = x.split()

공백을 기준으로 문자열을 나누면 다음과 같은 리스트가 만들어집니다.

y = ["Python", "programming"]

따라서 각각의 값은 다음과 같습니다.

y[0] = "Python"
y[1] = "programming"

3-4. 첫 번째 출력문

print(y[0][::2], end='*')

먼저 y[0]의 값은 다음과 같습니다.

Python

각 문자의 인덱스를 표시하면 다음과 같습니다.

인덱스012345

문자 P y t h o n

슬라이싱은 다음과 같습니다.

[::2]

시작 위치와 종료 위치가 생략되어 있으므로 문자열 전체를 대상으로 하며, 두 칸씩 이동합니다.

선택되는 문자는 다음과 같습니다.

0번 인덱스 → P
2번 인덱스 → t
4번 인덱스 → o

따라서 슬라이싱 결과는 다음과 같습니다.

Pto

end='*'가 있으므로 줄바꿈 대신 *가 출력됩니다.

현재까지 출력된 내용은 다음과 같습니다.

Pto*

3-5. 두 번째 출력문

print(y[1][3:6])

y[1]의 값은 다음과 같습니다.

programming

각 문자의 인덱스를 표시하면 다음과 같습니다.

인덱스012345678910

문자 p r o g r a m m i n g

슬라이싱은 다음과 같습니다.

[3:6]

3번 인덱스부터 6번 인덱스 직전까지 선택합니다.

3번 인덱스 → g
4번 인덱스 → r
5번 인덱스 → a

따라서 결과는 다음과 같습니다.

gra

4. 전체 출력 과정

첫 번째 출력문은 다음 내용을 출력합니다.

Pto*

줄바꿈 없이 이어서 두 번째 출력문이 다음 내용을 출력합니다.

gra

따라서 전체 실행 결과는 다음과 같습니다.


5. 정답

Pto*gra

6. 시험 풀이 요약

"Python programming"을 공백으로 분리하면
["Python", "programming"]이 된다.

"Python"[::2]는 0, 2, 4번 문자를 선택하므로 Pto이고,
end='*'에 의해 Pto*가 출력된다.

"programming"[3:6]은 3, 4, 5번 문자를 선택하므로 gra이다.

따라서 최종 출력 결과는 Pto*gra이다.