본문 바로가기

Python

데이터 타입 : 문자형

1. 문자형 나타내기

문자형을 나타내기 위한 가장 간단한 방법은 작은 따옴표와 큰 따옴표를 사용하는 것입니다. 컴퓨터 언어에서 가장 유명한 구절인 hello, wolrd를 이용해 파이썬에서 문자형을 표현하는 방법을 알아보겠습니다. 

text = 'hello world'

 

다음은 문자열 안에 작은 따옴표 ' ' 를 나타내고 싶을 때 입니다. 이 때는 변수를 큰 따옴표를 이용해 선언하고, 그 안에 작은 따옴표를 사용합니다. 만약 변수 안에 큰 따옴표를 선언하고 싶다면, 작음 따옴표로 변수를 선언하고, 그 안에 큰 따옴표를 사용하면 됩니다. 

text = "hello 'world'"
text = 'hello "world"'

 

문자열 안에 작은따옴표와 큰 따옴표를 포함하는 방법으로는 역슬래시( \ )를 이용하는 방법이 있습니다. 역슬래시를 작은 따옴표나 큰 따옴표 앞에 사용하면, 문자열을 둘러싸는 기호가 아닌, 따옴표 그 자체를 나타내게 됩니다. 

text = 'hello \'world\''

 

2. 줄 바꿈

문자열을 입력하다 보면 길이가 너무 길어 가독성이 떨어지는 경우가 있습니다. 이 경우는 줄바꿈을 이용할 수 있습니다. 파이썬에서 줄바꿈은 \n 을 이용합니다.

text_line = 'hello world. \ni am python'

 

이 경우 text_line 이라는 변수를 출력해 보면 아래와 같이 나타납니다

hello world. 
i am python

 

위와 같은 줄바꿈 형태 외에 작은따옴표 또는 큰 따옴표 3개를 이용하는 방법도 있습니다. 아래의 코드도 위와 동일한 결과를 나타냅니다.

text_line = '''
hello world.
i am python
'''

 

3. 문자열 연산자 

숫자형과 동일하게 문자열에도 연산자가 있습니다. 문자열에서의 연산자는 주어진 문자열을 합쳐 새로운 문자열을 만들거나, 동일한 문자열을 여러번 붙이는 기능을 합니다. hello, wolrd를 두개의 문자열로 나누고 이를 더하는 코드를 만들어 봅시다. 두 문자열 사이의 띄어 쓰기를 나타내기 위해서 ' ' 를 사용한 것을 볼 수 있습니다. 

head = 'hello'
tail = 'world'
head + ' ' + tail
'hello world'

 

다음은 문자열 곱하기 입니다. 문자열을 곱하는 경우 동일한 문자열이 반복됩니다. 

head*2
'hellohello'

 

4. 문자열 길이 구하기 

변수로 저장된 문자열의 길이를 구하기 위해서는 len( ) 명령어를 사용합니다. len 함수는 print 함수 처럼 파이썬의 기본 함수로, 별다른 라이브러리 설정 없이 바로 사용할 수 있습니다. 문자열 길이에는 공백도 포함됩니다. 

len(head + tail)
10

 

5. 문자열 인덱싱과 슬라이싱

파이썬에서 문자열은 각 문자마다 번호가 지정되어 있습니다. 인덱싱은 이 번호에 해당하는 문자열을 찾는 것을 말합니다. hello, wolrd의 경우에는 아래와 같은 인덱싱 번호가 할당 됩니다. 인덱싱은 0부터 시작한다는 것을 꼭 기억해야 합니다. 

string h e l l o ,   w o r l d
index 0 1 2 3 4 5 6 7 8 9 10 11

 

인덱싱은 [ ]를 이용합니다. 그리고 [ ] 안에는 0부터 정수값을 넣습니다. 예를 들어 아래 코드의 경우 3번 index, 즉 4번째 문자를 가리키게 되며, l을 반환 합니다.

text = 'hello world'
text[3]
'l'

 

앞서 문자열의 길이를 계산하는 함수를 배웠습니다. 마지막 문자를 인덱싱하기 위해 문자열 전체 길이를 이용해 인덱싱 할 수도 있겠지만 파이썬에서는 마지막 문자는 [-1] 을 이용해 인덱싱 할 수 있습니다. 이 의미를 확대하면 앞서 배운 문자열의 인덱스는 아래와 같이 음수로도 표현할 수 있음을 알 수 있습니다. 

text[-1]
'd'
string h e l l o   w o r l d
index 0 1 2 3 4 5 6 7 8 9 10
-11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1

 

이번에는 문자열에서 문자 하나만이 아닌 몇개의 연속된 문자열을 한번에 추출하는 방법을 알아봅시다. 파이썬에서는 이것을 슬라이싱이라 부릅니다. 슬라이싱은 인덱싱과 동일하게 [ ]를 사용하나, 이 안에 하나의 숫자만을 넣지 않고 슬라이싱 하고자 하는 인덱스 범위를 : 를 이용해 나타냅니다.  

text[0:5]
'hello'

 

text[0:5]는 text 라는 변수에 할당된 문자열의 0번째 문자부터 5번째 보다 작은 문자열까지를 뽑아내라는 의미입니다. 만약 6번째 부터 문자열 끝까지를 슬라이싱 하고 싶으면 위 인덱스 표에서 볼 수 있는 것 처럼 text[6:10] 이면 될까요? 아닙니다. 왜냐면 10 보다 작은 문자열까지 반환하기 때문에 마지막 d는 슬라이싱 되지 않습니다. 이 경우는 : 의 마지막을 비워둠으로써 해결 할 수 있습니다. [a: ]는 a 번째 부터 끝까지 문자열을 반환하라는 의미입니다.

text[6:]
'world'

 

6. 문자열 함수

이번에는 문자열과 관련된 함수에 대해 알아봅시다. 문자 개수를 세는 함수는 count 입니다. count( ) 안에 찾고자 하는 문자를 입력해, 해당 문자열 안에 원하는 문자가 몇개가 있는지를 알 수 있습니다. 만약 문자열이 존재하지 않으면 0을 반환합니다. 

text = 'hello world'
text.count('l')
3

 

두번째는 find 입니다. find는 문자열을 위치를 알려주는 함수 입니다. 만약 문자열이 존재하지 않으면 -1을 반환합니다.

text.find('o')
4

 

문자열의 위치를 알려주는 함수에는 index도 존재합니다. index의 경우 문자열이 존재하지 않으면 에러를 반환합니다.

text.index('o')
4

 

이번에는 문자열 안에 다른 문자를 삽입하는 방법입니다. 이 경우에는 join 함수를 사용합니다. 만약 문자열 중간에 콤마(,)를 입력하고 싶다면 아래와 같은 방법을 사용합니다. 

",".join(text)
'h,e,l,l,o, ,w,o,r,l,d'

 

다음은 문자열 나누기 입니다. 단어나 문장 형태의 문자열을 나누는 방법입니다. spiit 이라는 함수를 사용하기 위해서는 나누는 기준이 되는 문자를 지정해줘야 합니다. 가령 hello world라는 문장을 hello와 world로 나눈기 위해 그 사이에 존재하는 띄어쓰기 ( ' ' ) 를 이용하면 다음과 같이 표현할 수 있습니다. split을 사용하면 결과 값은 리스트 라는 데이터 타입에 저장됩니다.  

text.split()
['hello', 'world']

 

문자열의 일부를 다른 문자로 대체 할 수도 있습니다. 이때 사용하는 함수는 replace 함수 입니다.

text.replace('world','Korea')
'hello Korea'

 

문자열이 어떤 문자로 시작하는지, 끝나는지를 확인할 수 있는 함수도 존재합니다. startswith, ednswith 입니다. 

text.startswith("world")
text.endswith("world")
False
True

'Python' 카테고리의 다른 글

데이터 타입 : 집합형  (0) 2025.06.25
데이터 타입 : 사전형  (2) 2025.06.24
데이터 타입 : 튜플  (0) 2025.06.24
데이터 타입 : 리스트  (0) 2025.06.23
데이터 타입 : 숫자형  (0) 2025.06.21