문자열
특징은 다음과 같다.
- 컴퓨터는 숫자를 다루지만 사람은 문자가 익숙하다.
- 응용프로그램을 만들기 위해서는 문자열을 잘 다룰 수 있어야 한다.
- 파이썬 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
파이썬 코딩 도장: 47.6 이스케이프 시퀀스
\(백슬래시) 뒤에 문자나 숫자가 오는 조합을 이스케이프 시퀀스(escape sequence)라고 합니다. 다음은 파이썬의 이스케이프 시퀀스입니다. ▼ 표 47-6 파이썬 이스케이프 시퀀스 이스케이프 시퀀스
dojang.io
문자열 다루기
문자열 결합: +
- 문자열에 + 연산자를 적용하면 문자열을 결합할 수 있다.
>>> 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
Built-in Types — Python 3.9.2 documentation
The following sections describe the standard types that are built into the interpreter. The principal built-in types are numerics, sequences, mappings, classes, instances and exceptions. Some collection classes are mutable. The methods that add, subtract,
docs.python.org
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 |