문자열
생성
1. 큰따옴표 "abc"
2. 작은따옴표 'abc'
3. 큰따옴표 3개 """a
bc"""
4. 작은따옴표 3개 '''a
bc'''
여기서 3번과 4번은 여러 줄로 구성된 문자열을 저장할 수 있다.
ex)
>>> a= """
abc"""
>>> print(a)
abc
문자열 곱
문자열 내에서 특정 문자열이 반복되는 경우 '*'를 사용하여 간소화가 가능하다.
ex)
>>> print("-" * 30)
------------------------------
문자열 슬라이싱
문자열에서 원하는 부분을 뽑아낸다.
ex)
>>> b = "abc d"
>>> b[0:2]
'ab'
>>> b[2:-1]
'c '
>>> b[2:]
'c d'
>>> b[:2]
'ab'
※ 주의점 : b[x1:x2]라면 범위는 x1<= b < x2 으로서 x2는 포함하지 않는다.
여기서 x2를 생략한다면 문자열 끝을 가리키고 x1을 생략한다면 문자열 맨 처음을 가리킨다.
문자열에서 문자변경
파이썬에서 문자열은 요소값을 바꿀 수 없는 자료형이다. 그래서 기존의 다른 언어에서처럼 인덱스로 접근하여 문자를 바꿀려하면 에러가 발생한다.
하지만 슬라이싱 기능을 이용하여 유사하게 만들 수 있다.
>>> def chan(s, i, c) :
return s[:i] + c + s[i+1:]
>>> c = "byphon"
>>> c
'byphon'
>>> c = chan(c, 0, 'p')
>>> c
'pyphon'
>>> c = chan(c, 2, 't')
>>> c
'python'
위 코드의 chan함수는 (문자열, 인덱스, 변경할 문자) 를 매개변수로 받고서 슬라이싱 기능을 이용하여서 해당 index의 문자를 변경한 문자열을 return해준다.
문자열 포맷팅
문자열을 만들거나 표현할 때 사용한다. ',' 나 '+'를 사용할 수도 있지만 타입이 달라서 에러가 발생할 수 있고, 포맷팅 사용하면 직관적으로 변수의 변수형을 알 수 있다.
ex)
>>> print("hello %s" % "world")
hello world
>>> print("%d, %s" % (52, "Hi") )
52, Hi
>>> print("%d" % 52 , "%s %s" % ("hello", "world") )
52 hello world
- 한 문자열에서 여러 값이 있다면 괄호를 써주어 묶어준다.
- 3번 째 print문처럼 여러 문자열이 있다면 각 문자열 뒤에서 "% 값" 을 주어야 한다.
문자열 정렬
포매팅을 이용하여서 문자열을 정렬할 수 있다.
ex)
>>> a = "hi"
>>> "{:<15}".format(a)
'hi '
>>> "{:^15}".format(a)
' hi '
>>> "{:>15}".format(a)
' hi'
>>> "{:-^15}".format(a)
'------hi-------'
왼쪽 정렬은 '<' 를
가운데 정렬은 '^'를
오른쪽 정렬은 '>'를 사용하여 정렬할 수 있다.
문자열 함수들
ex)
>>> a = "ab cd"
>>> len(a) # 문자열 길이 리턴
5
>>> a.find('c') # 문자열에서 'c'를 찾아서 index 리턴
3
>>> a.find('e') # 문자열에 없으면 -1 리턴
-1
>>> a.index('c') # find와 같은 기능 단, 없는 문자면 에러 발생
3
>>> a.replace("ab", "ef") # 인수 = (변경 될 문자열, 변경 할 문자열)
'ef cd'
>>> a.split() # 인수를 주지 않았기 때문에 디폴트문자인 공백으로 문자열을 자른 후 리턴
['ab', 'cd']
>>> b = ' b,c,d,b '
>>> b.split(',') # 문자열에서 ','를 기준으로 자른 후 리스트 리턴
[' b', 'c', 'd', 'b ']
>>> b
' b,c,d,b '
>>> b.lstrip() # left(왼쪽) 공백 제거
'b,c,d,b '
>>> b.rstrip() # right(오른쪽) 공백 제거
' b,c,d,b'
>>> b.strip() # 왼쪽, 오른쪽 공백 제거
'b,c,d,b'
>>> b.count('b') # 문자열에서 문자의 개수 리턴
2
>>> '~'.join(b) # 문자열에서 각 문자 사이에 문자를 삽입한다.
' ~b~,~c~,~d~,~b~ '
>>> '@'.join(b.strip().split(',')) # 처음 b에서 ','을 '@'로 바꾼다
'b@c@d@b'
>>> c = "AbCd"
>>> c
'AbCd'
>>> c.upper() # 대문자로 변경
'ABCD'
>>> c.lower() # 소문자로 변경
'abcd'
- len() : 문자열 길이 리턴
- find() : 문자열에서 문자를 찾아 인덱스 리턴, 없으면 -1을 리턴
- index() : find()와 마찬가지로 문자열에서 문자를 찾아 인덱스 리턴. 단, 없으면 에러 발생
- replace() : 문자열에서 지정한 문자열 변경
- split() : 문자열을 나누어 리스트로 반환한다. 인수를 주지 않으면 기본으로 ' '(공백)으로 나뉜다.
- lstrip() : 왼쪽 공백 제거
- rstrip() : 오른쪽 공백 제거
- strip() : 양쪽 공백 제거
- count() : 문자열에서 인수로 준 문자의 개수를 리턴한다.
- join() : 문자열에서 문자들 사이에 문자를 삽입한다.
- upper() : 대문자로 바꾼다.
- lower() : 소문자로 바꾼다.
'Python' 카테고리의 다른 글
파이썬 자료형 - 숫자 (0) | 2019.04.09 |
---|