문자열
특징은 다음과 같다.
- 컴퓨터는 숫자를 다루지만 사람은 문자가 익숙하다.
- 응용프로그램을 만들기 위해서는 문자열을 잘 다룰 수 있어야 한다.
- 파이썬 3에서는 유니코드에 대한 지원이 파이썬 2보다 향상되었다.
- 파이썬 3에서 문자열은 불변(immutable)이다.
문자열 리터럴
문자열 리터럴은 단일 또는 이중 인용부호로 묶어서 생성
>>> 'Hello'
>>> "World"
멀티 라인 문자열
- 파이썬에서는 세 개의 단일 또는 이중 인용부호를 사용해서 여러 라인의 문자열 리터럴을 생성할 수 있다.
>>> a = '''text
...text
...text
...text'''
>>> b = """text
...text
...text
...text"""
>>> print(a)
text
...text
...text
...text
>>> print(b)
text
...text
...text
...text
문자열 형변환
str()함수를 사용하여 문자열로 변환 가능
>>> str(98.6)
'98.6'
>>> str(1.0e4)
'10000.0'
>>> str(True)
'True'
이스케이프 시퀀스 (참고)
파이썬은 문자열 안에 일부 문자의 의미를 다르게 해석해서 특별한 문자를 출력할 수 있다.
- 문자 앞에 백슬리새(\) 기호를 붙여서 시작
- 예)\n:개행문자
이스케이프 시퀀스 목록
dojang.io/mod/page/view.php?id=2465
문자열 다루기
문자열 결합: +
- 문자열에 + 연산자를 적용하면 문자열을 결합할 수 있다.
>>> name = 'Gil-dong'
>>> 'Hi, ' + name +'!'
'Hi, Gil-dong!'
문자열 복제: *
- <문자열> * <양의정수>의 형태로 * 연산자를 사용하면 <문자열>이 <양의 정수> 만큼 반복된 문자열 생성됨.
>>> 'Hi' * 4
'HiHiHiHi'
문자 추출: []
- <문자열>[오프셋]의 형태로 특정 위치의 문자를 읽을 수 있다.
>>> s = 'abcdefghijklmnopqrstuvwxyz'
>>> s[0]
'a'
>>> s[1]
'b'
>>> s[-1]
'z'
>>> s[-2]
'y'
>>> s[100]
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
s[100]
IndexError: string index out of range
- 문자열은 불변 값이므로 특정 위치의 문자를 다른 문자로 바꿀수 없다.
>>> s[1] = 'B'
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
s[1] = 'B'
TypeError: 'str' object does not support item assignment
슬라이스: [start:end:step]
- 슬라이스를 사용하면 문자열의 일부를 추출할 수 있다.
- [:] - 처음부터 끝까지 추출
- [start:] - start 오프셋부터 끝까지 추출
- [:end] - 처음부터 (end-1) 오프셋까지 추출
- [start:end] - start 오프셋부터 (end-1) 오프셋까지 추출
- [start:end:step] - step만큼 문자를 건너뛰면서 start ~ (end-1)까지 추출
>>> s='0123456789'
>>> s[:]
'0123456789'
>>> s[4:]
'456789'
>>> s[1:7]
'123456'
>>> s[1:8:2]
'1357'
문자열 길이: len()
- 파이썬의 내장 함수 len()을 사용하면 문자열의 길이를 알 수 있다.
>>> s[1:8:2]
'1357'
>>> s = '123'
>>> len(s)
3
>>> len('')
0
문자열 분리/결합: split(), join()
- 문자열은 문자열 처리를 위한 여러 메소드를 가지고 있으며 "<문자열>.<메소드>(인자)"의 형태로 사용
>>> s = 'Python is easy'
>>> s.split()
['Python', 'is', 'easy']
>>> '#'.join(['python','is','easy.'])
'python#is#easy.'
>>> '1,2,3'.split(',')
['1', '2', '3']
이외에도 다양한 함수를 제공하고 있으니 아래의 사이트에서 문자열 함수들이 어떤것이 있는지 확인할 수 있다.
docs.python.org/3/library/stdtypes.html#string-methods
problem
사용자로부터 메세지를 입력받고, 메시지의 길이와 메시지를 단어로 분리하여 출력하라(공백으로 분리)
>>> msg = input('메세지: ')
메세지: Hello World!
>>> print(len(msg))
12
>>> print(msg.split())
['Hello', 'World!']
Summary
- 파이썬 3에서는 유니코드에 대한 지원이 파이썬 2보다 향상되었다.
- 문자열 리터럴은 단일 또는 이중 인용부호로 감싸서 표현한다.
- 단일 또는 이중 인용부호 세 개를 이용하여 멀티 라인 문자열을 표현할 수 있다.
- str() 함수를 이용하여 문자열로 형변환이 가능하다.
- 이스케이프 시퀀스를 이용하면 특별한 문자를 표현할 수 있다.
- 문자열에서 + 연산은 두 문자열을 연결하며, * 연산은 연산의 대상이 되는 문자열을 곱한 수 만큼 반복된 형태로 생성한다.
- []연산자를 이용하여 특정 오프셋의 문자를 추출할 수 있다.
- 슬라이스 연산을 이용하면 특정 부분의 문자열을 추출할 수 있다.
- 파이썬은 문자열을 다룰 수 있는 여러 가지 메소드를 제공한다.
'Language > Python' 카테고리의 다른 글
[Python] Ch3 - part 1.리스트와 튜플 (0) | 2021.03.25 |
---|---|
[Python] Ch2 - part 4. 논리 (Boolean) (0) | 2021.03.25 |
[Python] Ch2 - part 2. 숫자 (0) | 2021.03.25 |
[Python] Ch2 - part 1. 변수, 이름, 객체 (0) | 2021.03.25 |
[Python] 유용한 사이트 모음 (0) | 2021.03.25 |