[Python] 문자열 자료형
문자열 자료형
문자열이란?
문자열(String)이란 문자, 단어 등으로 구성된 문자들의 집합을 의미한다. 예를 들어 다음과 같은 것들이 문자 열이다.
"Life is too short, you need Python"
"a"
"123
위 문자열 예문을 보면 모두 큰따옴표("")로 둘려 싸여 있따. "123은 숫자인데 왜 문자열이지?"라는 의문이 드는 사람도 있을 것이다. 따옴표로 둘러싸여 있으면 모두 문자열이라고 보면 된다.
문자열은 어떻게 만들고 사용할까?
위 예에서는 문자열을 만들 때 큰따옴표(" ")만을 사용했지만 이 외에도 문자열을 만드는 방법은 3가지가 더 있다. 파이썬에서 문자열을 만드는 방법은 총 4가지이다.
- 큰따옴표(")로 양쪽 둘러싸기
"Hello World"
- 작은따옴표(')로 양쪽 둘러 싸기
'python is fun'
- 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
"""Life is too short, You need python"""
- 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
단순함이 자랑인 파이썬이 문자열을 만드는 방법은 왜 4가지나 가지게 되었을까? 그 이유에 대해 알아보자.'''Lift is too short, You need python'''
문자열 안에 작은 따옴표나 큰따옴표를 포함시키고 싶을떄
문자열을 만들어 주는 주인공은 작은따롬표(')와 큰따옴표(")이다, 그런데 문자열 안에도 작은 따옴표와 큰따옴표가 들어있어야할 경우가 있따. 이떄는 좀더 특별한 기술이 필요하다.
예제를 하나씩 살펴보며 원리를 익혀 보자.1. 문자열에 작은 따옴표(')포함하기
위와 같은 문자열을 food 변수에 저장하고 싶다고 가정하자. 문자열 중 Pytho's에 작은따옴표(')가 포함되어 있다.Python's favorite food is perl
이럴떄는 다음과 같이 문자열을 큰따옴표(")로 둘러싸야한다. 큰따옴표 안에 들어있는 작은 따옴표는 문자열을 나타내기 위한 기호로 인식되지 않는다.
프롬프트에 food 를 입력해서 결과를 확인하자. 변수에 저장된 문자열이 그대로 출력되는 것을 볼수 있다.>>> food = "Python's favorite food is perl"
큰따옴표가 아닌 작은 따옴표로 문자열을 둘러싼후 다시 실행해보면 SyntaxError가 발생할 것이다.>>> food "Pythonn's favorite food is perl"
문자열 관련 함수들
문자열 자료형은 자체적으로 함수를 가지고 있다. 이들 함수를 다른 말로 문자열 내장 함수라 한다. 이 내장 함수를 사용하려면 문자열 변수 이름 뒤에 '.'를 쿹인 다음에 함수 이름을 써주면 된다. 이제 문자열의 내장 함수에 대해 알아보자
문자 개수 세기(count)
>>> a = "hobby"
>>> a.count('b')
2
문자열 중 문자 b의 개수를 리턴
위치 알려주기1(find)
>>> a = "Python is the best choice"
>>> a.find('b')
14
>>> a.find('k')
-1
문자열 중 문자 b가 처음으로 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 -1을 반환.
위치 알려주기2(index)
>>> a = "Life is too short"
>>> a.index('t')
8
>>> a.index('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
문자열 중 문자 t가 맨 처음으로 나온 위치를 반환한다. 만약 찾는 문자나 문자열이 존재하지 않는다면 오류를 발생시킨다. 앞의 find함수와 다른 점은 문자열 안에 존재하지 않는 문자를 찾으면 오류가 발생한다는 점이다.
문자열 삽입(join)
>>> ",".join('abcd')
'a,b,c,d'
abcd 문자열의 각각의 문자 사이에 ','을 삽입한다.
join 함수는 문자열뿐만 아니라 앞으로 배울 리스트나 튜플도 입력으로 사용할 수 있다. join함수의 입력으로 리스트를 사용하는 예는 다음과 같다.
>>> ",".join(['a', 'b', 'c', 'd'])
'a,b,c,d'
소문자를 대문자로 바꾸기(upper)
>>> a = "hi"
>>> a.upper()
'HI'
upper 함수는 소문자를 대문자로 바꾸어 준다. 만약 문자열이 이미 대문자라면 아무 변화도 일어니 않을 것이다.
대문자를 소문자로 바꾸기(lower)
>>> a = "HI"
>>> a.lower()
'hi'
lower함수는 대문자를 소문자로 바꾸어 준다.
왼쪽 공백 지우기(lstrip)
>>> a = " hi "
>>> a.lstrip()
'hi '
문자열중 가장 왼쪽에 있는 한 칸 이상의 연속된 공백들을 모두 지운다. lstrip에서 l은 left
오른쪽 공백 지우기(rstrip)
>>> a= " hi "
>>> a.rstrip()
' hi'
문자열 중 가장 오른쪽에 있는 한 칸 이상의 연속된 공백을 모두 지운다. rstrip에서 r은 right
양쪽 공백지우기(strip)
>>> a = " hi "
>>> a.strip()
'hi'
문자열 양쪽에 있는 한 칸 이상의 연속된 공백을 모두 지운다.
문자열 바꾸기(replace)
>>> a = "Life is too short"
>>> a.replace("Life", "Your leg")
'Your leg is too short'
replace(바뀌게될 문자열, 바꿀 문자열)처럼 사용해서 문자열 안의 특정한 값을 다른 값으로 치환해 준다.
문자열 나누기(split)
>>> a = "Life is too short"
>>> a.split()
['Life', 'is', 'too', 'short']
>>> b = "a:b:c:d"
>>> b.split(':')
['a', 'b', 'c', 'd']
split 함수는 a.split()처럼 괄호 안에 아무 값도 넣어 주지 않으면 공백(스페이스,탭,엔터)을 기준으로 문자열을 나누어 준다.
만약 b.split(':')처럼 괄호 안에 특정 값이 있을 경우에는 괄호 안의 값을 구분자로 해서 문자열을 나누어 준다. 이렇게 나눈 값은 리스트에 하나씩 들어가게 된다.