도시 이름의 첫 글자로 완성하는 문자열(Chatgpt)

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

클래스 속성, 반복문, 문자열 인덱싱 분석


1. 문제

다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.

class charClass:
    a = ["Seoul", "Inchon", "Kyonggi", "Daejun", "Daegu", "Pusan"]

myVal = charClass()
str01 = ''

for i in myVal.a:
    str01 = str01 + i[0]

print(str01)

2. 주요 포인트

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

① 클래스 속성

class charClass:
    a = [...]

리스트 a는 charClass 내부에 선언된 클래스 속성입니다.


② 클래스 객체 생성

myVal = charClass()

charClass의 객체를 생성하여 myVal에 저장합니다.

객체를 통해 클래스 속성 a에 접근할 수 있습니다.

myVal.a

③ 리스트 반복

for i in myVal.a:

리스트 myVal.a의 문자열을 처음부터 하나씩 변수 i에 대입합니다.


④ 문자열의 첫 번째 문자

i[0]

문자열의 인덱스는 0부터 시작하므로 i[0]은 각 문자열의 첫 번째 문자입니다.

예를 들어 다음과 같습니다.

"Seoul"[0]   # S
"Pusan"[0]   # P

3. 풀이

3-1. 클래스 속성 확인

클래스 charClass에는 다음 리스트가 들어 있습니다.

a = [
    "Seoul",
    "Inchon",
    "Kyonggi",
    "Daejun",
    "Daegu",
    "Pusan"
]

객체를 생성한 후 다음과 같이 접근할 수 있습니다.

myVal.a

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

["Seoul", "Inchon", "Kyonggi", "Daejun", "Daegu", "Pusan"]

3-2. 빈 문자열 준비

str01 = ''

str01에는 아직 문자가 들어 있지 않습니다.

str01 = ""

반복문을 실행하면서 각 도시 이름의 첫 글자를 이 변수에 계속 이어 붙입니다.


3-3. 반복문 실행

for i in myVal.a:
    str01 = str01 + i[0]

리스트의 문자열이 순서대로 변수 i에 저장됩니다.

첫 번째 반복

i = "Seoul"
i[0] = "S"
str01 = "" + "S"
      = "S"

두 번째 반복

i = "Inchon"
i[0] = "I"
str01 = "S" + "I"
      = "SI"

세 번째 반복

i = "Kyonggi"
i[0] = "K"
str01 = "SI" + "K"
      = "SIK"

네 번째 반복

i = "Daejun"
i[0] = "D"
str01 = "SIK" + "D"
      = "SIKD"

다섯 번째 반복

i = "Daegu"
i[0] = "D"
str01 = "SIKD" + "D"
      = "SIKDD"

여섯 번째 반복

i = "Pusan"
i[0] = "P"
str01 = "SIKDD" + "P"
      = "SIKDDP"

4. 반복 과정 한눈에 보기

반복변수 ii[0]str01 결과

초기값     ""
1 "Seoul" S "S"
2 "Inchon" I "SI"
3 "Kyonggi" K "SIK"
4 "Daejun" D "SIKD"
5 "Daegu" D "SIKDD"
6 "Pusan" P "SIKDDP"

5. 최종 출력문

print(str01)

반복문이 끝났을 때 str01에는 다음 문자열이 저장되어 있습니다.

SIKDDP

6. 정답

SIKDDP

7. 시험에서 주의할 부분

i는 인덱스 번호가 아닙니다

for i in myVal.a:

여기서 i에는 0, 1, 2와 같은 숫자가 들어가는 것이 아닙니다.

리스트의 문자열이 직접 들어갑니다.

"Seoul" → "Inchon" → "Kyonggi" → ...

i[0]은 리스트의 첫 번째 요소가 아닙니다

반복문 안에서 i는 하나의 문자열입니다.

i = "Seoul"

따라서 i[0]은 문자열 "Seoul"의 첫 번째 문자인 "S"를 의미합니다.


문자열은 + 연산자로 연결할 수 있습니다

str01 = str01 + i[0]

숫자처럼 더하는 것이 아니라 문자를 뒤에 이어 붙입니다.

"SIK" + "D" = "SIKD"

8. 시험 풀이 요약

myVal.a에는 6개의 도시 이름이 저장되어 있다.

for문은 도시 이름을 하나씩 가져오고,
i[0]을 통해 각 문자열의 첫 번째 문자를 선택한다.

선택되는 문자는 순서대로
S, I, K, D, D, P이다.

이를 빈 문자열 str01에 차례로 연결하므로
최종 출력 결과는 SIKDDP이다.