python의 자료형 중 문자열에 대해 알아보겠습니다.

 

1. 문자열 생성

문자열을 생성하는 방법은 단일인용부호('), 이중인용부호("), 단일인용부호 세개('''), 이중인용부호 세개(""") 로 앞뒤를 감싸주는 것으로 생성할 수 있습니다.

위 방법으로 문자열을 생성한 후 type을 확인해 보겠습니다.

str1 = "I am python"
str2 = 'python'
str3 = """How are you?"""
str4 = '''Thank you'''
str5 = ''
print(type(str1), type(str2), type(str3), type(str4), type(str5))

>> result
<class 'str'> <class 'str'> <class 'str'> <class 'str'> <class 'str'>

 

2. 이스케이프 문자

역슬러쉬(\)를 이용하면 여러가지 모양의 문자열을 생성할 수 있습니다.

 1. 큰 따옴표, 작은 따옴표

# 큰 따옴표 안에 작은 따옴표 쓰기
print("I'm a boy")

# 작은 따옴표안에 작은 따옴표 쓰기
print('I\'m a boy') 

escape_str1 = "Do you have a \"book\"?"
print(escape_str1)

>> result
I'm a boy
I'm a boy
Do you have a "book"?

 

 2. 탭과 엔터 표현하기

#tap
print('click \t tap')

# enter
print('click \n enter') 

>>result
click 	 tap
click 
 enter

 

 3. raw string을 이용하여 역슬러시 표현하기

raw_s1 = r'D:\python\test'
print(raw_s1)

>> result
D:\python\test

 

3. 문자열 연산

문자열도 연산이 가능합니다.

str_o1 = "Hello"
str_o2 = "Python"

위와 같이 str_01 과 str_02의 문자열이 존재할 때 문자열 끼리 더하기와 곱하기가 가능합니다.

print(str_o1 + str_o2)
print(str_o1 * 2)

>> result
HelloPython
HelloHello

해당 문자가 문자열에 포함되어있는지 확인하는 방법은 in 또는 not in을 써서 확인할 수있습니다.

포함되어 있다면 결과는 True, 포함되어 있지 않다면 False를 반환하게 됩니다.

print('l' in str_o1)
print('z' in str_o1)
print('z' not in str_o2)
>> result
True
False
True

 

4. 문자열 함수

문자열 함수 중 대표적인 함수를 알아보겠습니다.

   
upper() 모든 문자를 대문자로 변환
lower() 모든 문자를 소문자로 변환
capitalize() 첫 글자를 대문자로 변환
startswith(s) 첫 번째 글자가 s인지 확인
endswith(s) 마지막 글자가 s인지 확인
replace('s','m') s를 m으로 문자 변환
split(' ') 공백으로 문자를 분리
sorted() 순서가 정렬되어 리스트 형태로 반환

 

위 함수의 예를 확인해 보겠습니다.

str_o3 = "hello python"
str_04 = "HELLP PYTHON"
str_o5 = "seoul daejeon daegu busan"
str_06 = "hello"

위와 같이 문자열을 선언해 놓고 각각의 함수를 사용하여 결과를 확인하겠습니다.

print("upper : ", str_o3.upper())
print("lower : ", str_04.lower())
print("Capitalize : ", str_o3.capitalize()) 
print("startswith : ", str_o3.startswith("h"))
print("endswith : ", str_o2.endswith("s")) 
print("replace : ", str_o5.replace("busan", 'jeju'))
print("split : ", str_o5.split(' ')) 
print("sorted : ", sorted(str_06))

>> result
upper :  HELLO PYTHON
lower :  hellp python
Capitalize :  Hello python
startswith :  True
endswith :  False
replace :  seoul daejeon daegu jeju
split :  ['seoul', 'daejeon', 'daegu', 'busan']
sorted :  ['e', 'h', 'l', 'l', 'o']

 

5. 슬라이싱

슬라이싱은 지정한 범위의 문자를 가져오는 것을 뜻합니다.

아래와 같이 str_s1을 Hello Python으로 선언해 놓고 해당 문자열의 길이는 12인 것을 확인했습니다.

str_sl = "Hello Python"
print(len(str_sl))

>> result
12

 

위 문자열을 슬라이싱 해 보겠습니다.

# 0부터 5-1 까지 출력
print(str_sl[0:5])

# 6부터 11-1 까지 출력
print(str_sl[6:12]) 

# str_sl[:12]
print(str_sl[:len(str_sl)])

# str_sl[:11]
print(str_sl[:len(str_sl)-1]) 

# 1부터 9-1까지 2칸씩 출력
print(str_sl[0:12:2]) 
print(str_sl[::2])

# 뒤에서부터 출력
print(str_sl[-5:])

# 역순으로 출력
print(str_sl[::-1]) 

>> result
Hello
Python
Hello Python
Hello Pytho
HloPto
HloPto
ython
nohtyP olleH

'Language > Python' 카테고리의 다른 글

09. python 자료형 - 튜플  (0) 2019.12.14
08. python 자료형 - 리스트  (0) 2019.12.14
06. python 자료형 - 숫자형  (0) 2019.12.07
05. python - 비교 연산자 & 논리 연산자  (0) 2019.11.16
04. python 지원 자료형  (0) 2019.09.19

+ Recent posts