도시 이름의 첫 글자로 완성하는 문자열(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이다.
'파이썬' 카테고리의 다른 글
| 네 글자만 남기고, 열 칸에 정렬하기(Chatgpt) (0) | 2026.07.11 |
|---|---|
| Python 클래스 변수와 반복문 문제 풀이(Claude) (0) | 2026.07.11 |
| Python 포맷 문자열과 지수표기법 문제 풀이(Claude) (0) | 2026.07.11 |
| 줄바꿈 뒤에 /를 붙이고, 실수를 반올림하라(Chatgpt) (0) | 2026.07.11 |
| Python 리스트·문자열 함수 분석 문제 풀이(Claude) (0) | 2026.07.11 |