안녕하세요 푸민입니다.
문자 데이터들의 집합을 문자열이라고 합니다. 파이썬에서 문자열을 제어하는 방법은 굉장히 다양합니다. 하나씩 알아보도록 할게요.
1. 문자열 생성
- 큰따옴표("), 작은 따옴표('), 큰따옴표 세개("""), 작은따옴표 3개(''')를 사용하여 같은 것으로 양쪽을 둘러싸야 됩니다.
>>> name = "My name is Fumin."
>>> name = 'My name is Fumin.'
>>> name = """My name is Fumin."""
>>> name = '''My name is Fumin.'''
- 문자열 내에 따옴표 포함할때는 다른 따옴표를 사용하거나 역슬래시(\)를 사용하여야합니다.
>>> hobby = "Fumin's favorite hobby is walking."
>>> hobby = 'Fumin\'s favorite hobby is walking.'
>>> tell = 'Fumin says, "Go!"'
>>> tell = "Fumin says, \"Go!\""
- 줄바꿈, 탭 등 이스케이프 코드 사용
>>> introduce = "Hello!\nMy name is Fumin.\nNice to meet you."
>>> introduce = '''
Hello!
My name is Fumin.
Nice to meet you.
'''
>>> introduce = """
Hello!
My name is Fumin.
Nice to meet you.
"""
>>> print(introduce)
코드 | 설명 |
\n | 문자열 줄바꿈 |
\t | 문자열 탭 간격 |
\\ | 문자 \입력 |
\' | 작은 따옴표 입력 |
\" | 큰따옴표 입력 |
\r | 줄바꿈 커서 앞으로 |
\f | 줄바꿈 커서를 다음줄로 |
\a | 출력시 PC에서 삑 소리 |
\b | 백 스페이스 |
\000 | 널 문자 |
2. 문자열 연산
- 문자열 더하기 - (+)
>>> front = "This is"
>>> end = " sparta!"
>>> front + end
'This is sparta!'
두개의 문자를 합쳐서 반환합니다.
- 문자열 곱하기 - (*)
>>> text = "Fumin"
>>> text * 2
'FuminFumin'
해당 문자를 특정 수만큼 합쳐서 반환합니다.
- 문자열 길이 구하기 - ( len )
>>> text = "My name is Fumin."
>>> len(text)
17
문자열의 길이를 숫자로 반환합니다.
3. 문자열 특정 자리 문자 가져오기, 자르기
- 문자열 특정 자리 문자 가져오기 - []
>>> text = "My name is Fumin."
>>> text[0]
'M'
>>> text[5]
'm'
>>> text[-6]
'F'
문자 변수뒤에 [] 괄호를 이용하여 자릿수를 입력하면 해당 자릿수에 해당하는 문자를 가져옵니다. 0부터 시작하며 - 부호를 사용할경우 뒤에서부터 카운트합니다.
- 문자열 자르기 - [] 괄호 내에 범위 지정
>>> text = "My name is Fumin."
>>> name = text[11] + text[12] + text[13] + text[14] + text[15]
>>> name
'Fumin'
>>> name2 = text[11:15]
>>> name2
'Fumi'
>>> name3 = text[11:]
>>> name3
'Fumin.'
>>> name4 = text[:]
>>> name4
'My name is Fumin.'
[] 를 이용하여 범위를 지정할수 있습니다. 특정 자릿수를 입력하여 특정 문자를 가져와서 합칠수도 있고, 클론 (:)을 이용하여 범위를 지정할 수도 있습니다. 클론 기준으로 앞의 숫자는 시작 위치(공백이면 0), 뒤의 숫자는 끝위치 바로 뒤(공백이면 문자열 길이)입니다. name2에서 본것 같이 [11:15] 로 범위를 지정한 경우 11번째부터 14번째까지만 가져옵니다.
4. 문자열 포맷팅
문자열 포맷팅이랑 특정 숫자나 문자들을 하나의 문자열로 합치고 변형하는 것입니다. 다양한 데이터들을 원하는 형태로 출력을 할 수 있습니다.
- 문자열 포맷팅 - (%)
>>> "My age is %d." % 32
'My age is 32.'
>>> "My name is %s." % 'Fumin'
'My name is Fumin.'
>>> age = 32
>>> name = 'Fumin'
>>> "My name is %s. My age is %s." % (name, age)
'My name is Fumin. My age is 32.'
%를 이용하여 어떤 데이터를 넣을수 있는지 결정할 수 있습니다. 여러가지 변수 또는 데이터를 합칠수도 있습니다. 또한 %s 의 경우 문자 이외의 모든 데이터 형태를 사용할 수 있습니다. 합칠때 데이터 형태를 문자로 변형하기 때문입니다.
코드 | 설명 |
%s | 문자열(또는 모든 형태) |
%c | 문자 1개 |
%d | 정수 |
%f | 부동소수 |
%o | 8진수 |
%x | 16진수 |
%% | '%' 문자 자체 |
- 문자 및 소수 자릿수 지정
>>> "%20s" % "My name is Fumin."
' My name is Fumin.'
>>> "%-20s" % "My name is Fumin."
'My name is Fumin. '
>>> "%0.5f" % 0.123456789
'0.12346'
>>> "%10.5f" % 0.123456789
' 0.12346'
%s 사이에 숫자를 입력하면 해당 길이의 문자열을 만듭니다. - 부호를 같이 입력하면 왼쪽 정렬 후 공백을, 부호 없이 하면 오른쪽 정렬 후 앞쪽은 공백으로 채워집니다.
소수의 경우 %f 사이에 (숫자).(숫자)를 입력할 수 있고 앞의 수는 위와 같은 자릿수이고, 뒤의 수는 반올림 기준입니다.
- format 함수 사용
>>> "My name is {0}. My age is {1}.".format('Fumin', 32)
'My name is Fumin. My age is 32.'
>>> "My name is {name}. My age is {age}.".format(name = 'Fumin', age = 32)
'My name is Fumin. My age is 32.'
>>> "{0:<10}".format("Fumin")
'Fumin '
>>> "{0:.>10}".format("Fumin")
'.....Fumin'
>>> "{0:^10.5f}".format(0.123456789)
' 0.12346 '
format 함수를 사용하면 {} 괄호에 데이터 순서를 넣어도 되고, 특정 파라미터 명을 지정할 경우 해당 명의 값이 반환됩니다. 또한 소수와 자릿수, 정렬도 사용이 가능합니다.
- f 문자열 포맷팅
>>> name = 'Fumin'
>>> age = 32
>>> f'My name is {name}. My age id {age}.'
'My name is Fumin. My age id 32.'
>>> f'{"Fumin":<10}'
'Fumin '
>>> f'{"Fumin":.^10}'
'..Fumin...'
>>> number = 0.123456789
>>> f'{number:10.5f}'
' 0.12346'
5. 기타 문자열 함수
- 문자 갯수 세기
>>> text = "My name is Fumin."
>>> text.count('n')
2
해당 문자의 갯수를 반환한다.
- 위치 찾기
>>> text = "My name is Fumin."
>>> text.find('n')
3
>>> text.find('f')
-1
>>> text.index('n')
3
>>> text.index('f')
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
text.index('f')
ValueError: substring not found
find의 경우 없으면 -1을 index의 경우 없으면 에러를 반환한다.
- 문자열 삽입하기
>>> ".".join('Fumin')
'F.u.m.i.n'
문자 사이에 . 을 삽입합니다.
- 문자열 대문자, 소문자로 변환
>>> name = 'Fumin'
>>> name.upper()
'FUMIN'
>>> name.lower()
'fumin'
- 공백 지우기
>>> name = ' Fumin '
>>> name.lstrip()
'Fumin '
>>> name.rstrip()
' Fumin'
>>> name.strip()
'Fumin'
lstrip()은 좌측 공백 제거, rstrip()은 우측 공백 제거, strip()은 앞뒤 공백 제거합니다.
- 문자열 나누기
>>> text= 'My name is Fumin'
>>> text.split()
['My', 'name', 'is', 'Fumin']
>>> text.split('n')
['My ', 'ame is Fumi', '']
>>>
split() 함수로 나누기가 가능하고, 공백이면 ' ' 띄어쓰기 기준으로 나눕니다. 특정 문자를 입력할 경우 해당 문자로 나눕니다.
'Development > Python' 카테고리의 다른 글
[Python] 파이썬 예제 - 데이터 형식 - 집합 Set (0) | 2020.09.22 |
---|---|
[Python] 파이썬 예제 - 데이터 형식 - 사전, 딕셔너리 Dictionary (0) | 2020.09.20 |
[Python] 파이썬 예제 - 데이터 형식 - 튜플 Tuple (0) | 2020.09.12 |
[Python] 파이썬 예제 - 데이터 형식 - 리스트 List (0) | 2020.09.10 |
[Python] 파이썬 예제 - 데이터 형식 - 숫자 (0) | 2020.09.03 |
댓글