파이썬 문자열 처리 퀴즈
각각의 문제 + 정답 + 상세풀이 + 예시 코드

OX 10문항 + 5지선다형 10문항

OX 1

파이썬에서 문자열은 한 번 생성되면 그 내용을 직접 수정할 수 없다 (immutable).

정답 O

상세 풀이

문자열은 변경 불가능한 자료형입니다. 기존 문자열 자체를 고치는 것이 아니라, replace나 strip 같은 메서드는 새 문자열을 만들어 반환합니다.

예시 코드

s = 'python'
print(s)
print(id(s))

s = s.upper()
print(s)
print(id(s))

출력 결과

python
Python
OX 2

s = "abc"일 때, s[1] = "B"와 같이 특정 문자를 변경할 수 있다.

정답 X

상세 풀이

문자열은 불변 자료형이므로 인덱스로 특정 문자를 직접 바꿀 수 없습니다. 바꾸려면 슬라이싱이나 replace로 새 문자열을 만들어야 합니다.

예시 코드

s = 'abc'

try:
    s[1] = 'B'
except TypeError:
    print('문자열은 직접 수정 불가')

출력 결과

문자열은 직접 수정 불가
OX 3

"apple".split("p")의 결과는 ["a", "", "le"] 이다.

정답 O

상세 풀이

split은 지정한 구분자를 기준으로 문자열을 나눕니다. apple에는 p가 연속으로 두 번 나오므로 p와 p 사이의 빈 부분이 빈 문자열로 포함됩니다.

예시 코드

result = 'apple'.split('p')
print(result)

출력 결과

['a', '', 'le']
OX 4

len("안녕하세요")의 결과는 5이다.

정답 O

상세 풀이

len은 문자열의 문자 개수를 셉니다. 안녕하세요는 한글 5글자로 이루어져 있으므로 결과는 5입니다.

예시 코드

s = '안녕하세요'
print(len(s))

출력 결과

5
OX 5

" python ".strip()은 원본 문자열 자체를 변경한다.

정답 X

상세 풀이

strip은 양쪽 공백을 제거한 새 문자열을 반환합니다. 원본 문자열은 그대로이며, 결과를 사용하려면 변수에 다시 저장해야 합니다.

예시 코드

s = ' python '
t = s.strip()

print('원본:', repr(s))
print('결과:', repr(t))

출력 결과

원본: ' python '
결과: 'python'
OX 6

s.find("a")는 문자열 s에 "a"가 없으면 -1을 반환한다.

정답 O

상세 풀이

find는 찾는 문자열이 없을 때 오류를 내지 않고 -1을 반환합니다. 그래서 존재 여부를 안전하게 확인할 때 사용할 수 있습니다.

예시 코드

s = 'python'
print(s.find('a'))

출력 결과

-1
OX 7

s.index("a")는 문자열 s에 "a"가 없으면 -1을 반환한다.

정답 X

상세 풀이

index는 찾는 문자열이 없으면 -1이 아니라 ValueError를 발생시킵니다. find와 index의 중요한 차이입니다.

예시 코드

s = 'python'

try:
    print(s.index('a'))
except ValueError:
    print('ValueError 발생')

출력 결과

ValueError 발생
OX 8

"1,2,3".split() 코드의 결과는 ["1", "2", "3"]이다.

정답 X

상세 풀이

split()에 구분자를 지정하지 않으면 공백을 기준으로 나눕니다. 문자열에 공백이 없으므로 전체 문자열이 하나의 원소가 됩니다.

예시 코드

s = '1,2,3'
print(s.split())
print(s.split(','))

출력 결과

['1,2,3']
['1', '2', '3']
OX 9

"*".join(["a", "b", "c"])의 결과는 "*a*b*c"이다.

정답 X

상세 풀이

join은 구분자를 각 요소 사이에 넣습니다. 맨 앞에는 붙지 않으므로 결과는 a*b*c입니다.

예시 코드

result = '*'.join(['a', 'b', 'c'])
print(result)

출력 결과

a*b*c
OX 10

f-string은 Python 3.6 버전부터 사용할 수 있는 기능이다.

정답 O

상세 풀이

f-string은 문자열 앞에 f를 붙이고 중괄호 안에 변수나 식을 넣어 값을 쉽게 삽입하는 포매팅 방식입니다.

예시 코드

name = '인수'
age = 17
print(f'{name}의 나이는 {age}세입니다.')

출력 결과

인수의 나이는 17세입니다.
5지선다 11

s = "Hello, world!"일 때, s[7:12]의 결과는?

정답 "world"

상세 풀이

슬라이싱 [7:12]는 7번 인덱스부터 11번 인덱스까지 가져옵니다. Hello, world!에서 7번부터 11번까지는 world입니다.

예시 코드

s = 'Hello, world!'
print(s[7:12])

출력 결과

world
5지선다 12

다음 중 문자열 양쪽의 공백을 제거하는 메소드는?

정답 .strip()

상세 풀이

strip은 문자열의 왼쪽과 오른쪽 끝에 있는 공백을 제거합니다. 왼쪽만 제거하려면 lstrip, 오른쪽만 제거하려면 rstrip을 사용합니다.

예시 코드

s = '  python  '
print(repr(s.strip()))
print(repr(s.lstrip()))
print(repr(s.rstrip()))

출력 결과

'python'
'python  '
'  python'
5지선다 13

s = "python"일 때, s.replace("p", "P")의 결과는?

정답 "Python"

상세 풀이

replace는 첫 번째 인자로 받은 문자열을 두 번째 인자로 받은 문자열로 바꾼 새 문자열을 반환합니다.

예시 코드

s = 'python'
print(s.replace('p', 'P'))

출력 결과

Python
5지선다 14

["Life", "is", "short"] 리스트를 "Life is short" 문자열로 만들고 싶을 때, 올바른 코드는?

정답 " ".join(["Life", "is", "short"])

상세 풀이

join은 리스트의 문자열 요소들을 하나의 문자열로 합칩니다. 앞의 문자열은 요소 사이에 들어갈 구분자입니다.

예시 코드

words = ['Life', 'is', 'short']
sentence = ' '.join(words)
print(sentence)

출력 결과

Life is short
5지선다 15

s = "abcde"일 때, s[::-1] 코드의 결과는?

정답 "edcba"

상세 풀이

슬라이싱에서 step이 -1이면 문자열을 뒤에서 앞으로 읽습니다. 그래서 전체 문자열이 거꾸로 뒤집힙니다.

예시 코드

s = 'abcde'
print(s[::-1])

출력 결과

edcba
5지선다 16

변수 name과 age를 f"제 이름은 {name}이고, 나이는 {age}입니다."와 같이 포매팅하는 방법을 무엇이라고 하는가?

정답 f-string (formatted string literal)

상세 풀이

문자열 앞에 f를 붙이고 중괄호 안에 변수나 표현식을 넣는 방식입니다. 가독성이 좋아 현대 파이썬에서 많이 사용합니다.

예시 코드

name = '지훈'
age = 16
print(f'제 이름은 {name}이고, 나이는 {age}입니다.')

출력 결과

제 이름은 지훈이고, 나이는 16입니다.
5지선다 17

"image.jpg".startswith("image")의 결과는?

정답 True

상세 풀이

startswith는 문자열이 특정 문자열로 시작하는지 검사하여 True 또는 False를 반환합니다.

예시 코드

filename = 'image.jpg'
print(filename.startswith('image'))
print(filename.endswith('.jpg'))

출력 결과

True
True
5지선다 18

"42".isdigit()의 결과는?

정답 True

상세 풀이

isdigit은 문자열이 숫자 문자로만 이루어져 있는지 확인합니다. "42"는 숫자로만 구성되어 있으므로 True입니다.

예시 코드

s = '42'
print(s.isdigit())
print(int(s) + 8)

출력 결과

True
50
5지선다 19

s = "abc"일 때 len(s)의 결과는?

정답 3

상세 풀이

len은 문자열에 포함된 문자의 개수를 반환합니다. abc는 a, b, c 세 글자이므로 3입니다.

예시 코드

s = 'abc'
print(len(s))

출력 결과

3
5지선다 20

s.find("x")와 s.index("x")의 가장 큰 차이점은?

정답 찾는 값이 없을 때 find는 -1을, index는 오류를 발생시킨다

상세 풀이

find는 찾는 값이 없으면 -1을 반환하고, index는 ValueError를 발생시킵니다. 프로그램 흐름을 안전하게 처리하려면 이 차이를 알아야 합니다.

예시 코드

s = 'python'
print(s.find('x'))

try:
    print(s.index('x'))
except ValueError:
    print('index는 오류 발생')

출력 결과

-1
index는 오류 발생