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 |