1. 문자열(str)
String은 글자의 Unicode 코드로 이루어진 불변한 순서있는 집합입니다."" (쌍따옴표), ''(작은따옴표) 모두 사용가능합니다. 자바스크립트와 같습니다.
"' 와같이 혼용할 수 없습니다.
REPL 에서 확인합니다.
>>> "쌍따옴표 문자열"
'쌍따옴표 문자열'
>>> '작은따옴표 문자열'
'작은따옴표 문자열'
>>> "혼용하면 에러발생'
File "<stdin>", line 1
"혼용하면 에러발생'
^
SyntaxError: EOL while scanning string literal
큰따옴표 안에 작은따옴표는 들어갈 수 있고, 반대로 큰따옴표 안에 작은따옴표 들어갈 수 있습니다.
>>> "It's a good thing"
"It's a good thing"
>>> '"Yes",he said,"I agree!"'
'"Yes",he said,"I agree!"'
문자열을 나란히 두개 입력하면 문자열이 합쳐집니다.이로 인해 list에서 문자열을 입력할 때 실수할 여지가 있습니다. 콤마가 없으면 에러나지 않고문자열이 합쳐집니다.
>>> "abc" "def"
'abcdef'
>>> "abc" "def"
'abcdef'
>>> ["abc"
... "def",
... "ghi"]
['abcdef', 'ghi']
2. 멀티라인 입력
여러열 문자를 입력할때는 """ 큰따옴표 3개나, ''' 작은따옴표 3개를 입력합니다.\n 으로 표시되는 부분이 newline문자로 열을 바꿔주는 문자입니다.
시스템상에서 기본 newline문자는 Mac과 Linux \n 이지만, Windows에서는 \r\n 입니다.하지만 Windows에서도 newline문자로 \n이 찍히며, REPL에서도 정상적으로 라인이 바뀝니다.
>>> """ 이것은
... 멀티라인
... 입력입니다."""
' 이것은\n멀티라인\n입력입니다.'
>>> ''' 이것도
... 멀티라인
... 입력입니다.'''
' 이것도\n멀티라인\n입력입니다.'
3. 이스케이프 문자
이스케이프 문자란 직접 입력할 수 없는 일부 문자를 문자열에 포함시킬 수 있는 특수 문자를 지칭합니다.\ 역슬래시가 파이썬의 이스케이프 문자 escape문자
예제
>>> a = "이스케이프 문자 \n 라인이 바뀜 \\ 쌍따옴표를 또 쓰기 \"\" "
>>> print(a)
이스케이프 문자 라인이 바뀜 \ 쌍따옴표를 또 쓰기 "" 이스케이프 문자를 통해 유니코드 문자열을 입력할 수 있습니다.
>>> 'Vi er s\u00e5 glad for \u00e5 h\u00f8re og l\u00e6re om Python!'
'Vi er så glad for å høre og lære om Python!'
유니코드 문자열을 16진수로 바로 입력할 수 있습니다.
>>> '\xe5'
'å'
반대로 이스케이프 문자를 막는 raw문자열을 문자열 앞에 r 을 붙여 만들 수 있습니다.
>>> a = r"이스케이프 문자 \n 라인이 바뀜 \\ 쌍따옴표를 또 쓰기 \"\" "
>>> print(a)
이스케이프 문자 \n 라인이 바뀜 \\ 쌍따옴표를 또 쓰기 \"\"
4. 변환
int, float -> str 변환
>>> str(396)
'396'
>>> str(5.52)
'5.52'
>>> str(6.02e10)
'60200000000.0'
>>> str(6.02e20)
'6.02e+20'
5. 컬렉션 접근
String도 List와 같은 Collection 처럼 접근할 수 있습니다.
[문자열인덱스 숫자] 형식으로 접근됩니다.
>>> s = 'abcdef'
>>> s[3]
'd'
6. String 여러가지 메소드
문자열을 다양하게 변환하며 활용하게 됩니다.
문자열을 type함수를 실행해보면 아래와같이 나옵니다.
>>> type("문자열")
<class 'str'>
help 함수로 str에서 다양하게 활용할 수있는 메소드들 리스트를 볼수 있습니다.
q 버튼으로 빠져나올 수 있습니다.
help(str)
몇가지만 살펴보겠습니다.
join : 문자열을 합치는데 사용합니다. 구분자가 앞에서 사용되어집니다.
>>> ','.join(['a','b','cde'])
'a,b,cde'
split : join과 반대입니다. 문자열을 구분자로 나누어 리스트로 반환합니다.
>>> 'a,b,cde'.split(',')
['a', 'b', 'cde']
partition : 구분자로 나누어 tuple형으로 반환합니다.
>>> departure, _, arrival = "Seattle-Seoul".partition('-')
>>> departure
'Seattle'
>>> _
'-'
>>> arrival
'Seoul'
format : 문자를 다양한 형태로 포맷팅하는데 사용합니다.
인덱스 형으로 format을 사용하는 예제입니다.
>>> "Name: {}, Age: {}".format("철수", 13)
'Name: 철수, Age: 13'
>>> "Name: {0}, Age: {1}".format("영희", 15)
'Name: 영희, Age: 15'
>>> "Name: {0}, Age: {1}: {0}의 나이가 {1}".format("민호", 17)
'Name: 민호, Age: 17: 민호의 나이가 17'
키워드 형으로 format을 사용하는 예제입니다.
>>> "Name: {name}, Age: {age}: {name}의 나이가 {age}".format(age=19, name='재석')
'Name: 재석, Age: 19: 재석의 나이가 19'
리스트를 넘기고 index로 접근하는 format예제입니다.
>>> pos = [12.5, 35, 90]
>>> "A의 좌표는 x = {p[0]}, y = {p[1]}, z = {p[2]}".format(p=pos)
'A의 좌표는 x = 12.5, y = 35, z = 90'
module을 넘겨 활용하는 format 예제입니다.
>>> import math
>>> '수학에서 파이= {m.pi}'.format(m=math)
'수학에서 파이= 3.141592653589793'
format을 통해 넘겨받은 데이터를 변형할수도 있습니다.
소수점 3자리에서 끊었습니다.
변형의 예는 좀 더 많습니다. https://www.digitalocean.com/community/tutorials/how-to-use-string-formatters-in-python-3
>>> '수학에서 파이= {m.pi:.3f}'.format(m=math)
'수학에서 파이= 3.142'
capitalize: 첫 글자 대문자 나머지 문자 소문자로 변환합니다.
a가 바뀌지는 않습니다.
>>> a = "abcDef"
>>> a.capitalize()
'Abcdef'
>>> a
'abcDef'
strip : 좌우 공백을 제거 합니다.
>>> s = " abc "
>>> s.strip()
'abc'
>>> s
' abc '
len : Str함수는 아니며, 일반 내장함수입니다. 문자열 길이 또는 컬렉션형의 길이를 나타냅니다.
>>> len("abcd12345abcdefg")
16
'파이썬이야기' 카테고리의 다른 글
파이썬이야기-List (0) | 2020.07.16 |
---|---|
파이썬이야기-Bytes (0) | 2020.07.15 |
파이썬이야기-관계연산자(Relational Operators) While 문 (0) | 2020.07.14 |
파이썬이야기-import 기본라이브러리 및 Scalar 타입 (0) | 2020.07.14 |
파이썬이야기-REPL 사용 및 기본문법 (0) | 2020.07.13 |