문자열
문자열: 문자, 단어 등으로 구성된 문자들의 집합
문자열은 따옴표로 둘러싸여져 있음
"a" "123" "Life is too short, You need Python"
문자열 자료형 만드는 4가지 방법
- 큰따옴표(")로 양쪽 둘러싸기
- 작은따옴표(')로 양쪽 둘러싸기
- 큰따옴표 3개를 연속(""")으로 써서 양쪽 둘러싸기
- 작은따옴표 3개를 연속(''')으로 써서 양쪽 둘러싸기
문자열에 따옴표 포함시키기
- 문자열에 작은따옴표(') 포함시키기 -> 문자열을 큰따옴표로(")
>>> food = "Python's favorite food is perl"
- 역슬래시(\)를 사용해서 작은따옴표(')와 큰따옴표(")를 문자열에 포함시키기
>>> food = 'Python\'s favorite food is perl'
여러 줄인 문자열을 변수에 대입하고 싶을 때
- 줄을 바꾸기 위한 이스케이프 코드 \n 삽입하기
>>> multiline = "Life is too short\nYou need Python"
- 연속된 작은따옴표 3개(''') 또는 큰따옴표 3개(""") 사용하기
>>> multiline = '''Life is too short
...You need python'''
...
>>> print(multiline)
문자열 연산하기
문자열 더해서 연산하기 : +
>>> head = "Python"
>>> tail = "is fun!"
>>> head + tail
'Python is fun!'
, 은 띄어쓰기 한 칸
>>> year = 1991
>>> print("파이썬은", year + "년에 만들어졌다")
'파이썬은 1991년에 만들어졌다'
문자열 곱하기 : *
>>> a = "python"
>>> a * 2
'pythonpython'
문자열 길이 구하기 - len() 함수
>>> a = "Life is too short"
>>> len(a)
17
문자열 인덱싱과 슬라이싱
문자열 인덱싱
- 문자열의 각 문자마다 인덱스, 즉 문자의 위치를 지정하는 것
- 파이썬에서 인덱스는 항상 0부터 시작
인덱싱을 활용한 문자열의 요소 접근
- 대괄호[] 안에 인덱스를 지정하면 인덱스에 위치한 문자열의 요소에 접근 가능
- 문자열[index]
>>> a = "Life is too short"
>>> a[0]
'L'
>>> a[12]
's'
>>> a[-1] # 문자열 뒤에서부터 읽기(음수)
't'
문자열 슬라이싱
- 문자열[start:end] : start부터 end-1 index 문자열을 추출
>>> a = "Life is too short"
>>> a[0:4]
'Life'
>>> a[2:-6]
'fe is too'
- 문자열[:end] : 0번째부터 end-1 index의 문자열을 추출
- 문자열[start:] : start부터 끝까지 문자열을 추출
>>> a = "Life is too short"
>>> a[:4]
'Life'
>>> a[8:]
'too short'
>>> a[:]
'Life is too short'
- 문자열[start:end:step] : start부터 end-1까지 문자열에서 step만큼 건너뛰면서 문자열을 추출
>>> a = "Life is too short"
>>> a[2:11:2]
'f sto'
문자열 포맷팅
(문자열 안에 어떤 값을 삽입하는 방법)
① % 서식 지정자
- 숫자 바로 대입 : 문자열 안에 숫자를 넣고 싶은 자리에 %d 문자열을 넣어 주고, 삽입할 숫자는 가장 뒤에 있는 % 문자 다음에 입력
>>> "I eat %d apples." % 3
'I eat 3 apples.'
- 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat %d apples." % number
'I eat 3 apples.'
- 2개 이상의 값 넣기 : 마지막 % 다음 괄호 () 안에 콤마(,)로 구분하여 입력
% 문자열 포맷 코드와 괄호 안의 자료형의 순서가 일치해야 함
>>> number = 3
>>> day = "three"
>>> "I ate %d apples, so I was sick for %s days." % (number, day)
- 문자열 포맷 코드
%s 문자열 / %c 문자 1개 / %d 정수 / %f 부동소수 / %o 8진수 / %x 16진수 / %% 리터럴(문자 % 자체)
* %s는 자동으로 % 뒤에 있는 값을 문자열로 바꿈
>>> "I have %s apples" % 3
'I have 3 apples'
>>> "rate is %s" % 3.234
'rate is 3.234
- 정렬과 공백
%10s : 전체 길이가 10인 문자열 공간에서 값을 오른쪽으로 정렬하고 나머지는 공백으로 처리
>>> "%10s" % "hi"
' hi'
%-10s : 왼쪽으로 정렬하고 나머지는 공백
>>> "%-10sjane." % "hi"
'hi jane'
- 소수점 표현하기
%0.4f : 소수점 네 번째 자리까지 나타냄 (반올림)
>>> "%0.4f" % 3.42135234
'3.4214'
%10.4f : 전체 길이가 10인 문자열 공간에서 오른쪽으로 정렬하며, 소수점 네 번째 자리까지 나타냄. 문자열의 길이는 정수, 소수점, 소수점 자릿수를 모두 포함
>>> "%10.4f" % 3.42135234
' 3.4213'
② format() 함수
- 숫자 바로 대입하기
>>> "I eat {0} apples." . format(3)
'I eat 3 apples.'
- 문자열 바로 대입하기
>>> "I eat {0} apples." . format("five")
'I eat five apples.'
- 숫자 값을 나타내는 변수로 대입
>>> number = 3
>>> "I eat {0} apples." . format(number)
'I eat 3 apples.'
- 2개 이상의 값 넣기
>>> number = 3
>>> day = "three"
>>> "I ate{0} apples. so I was sick for {1} days." . format(number, day)
- 이름으로 넣기
{0}, {1}과 같은 인덱스 대신 {name} 형태로 사용
format() 함수에 반드시 name = value 로 값을 입력
>>> "I ate {number} apples. so I was sick for {day} days." .\
...format(number=10, day=3)
'I ate 10 apples. so I was sick for 3 days.'
- 정렬
:<10 : 전체 길이가 10인 문자열 공간에서 값을 왼쪽으로 정렬하고 나머지는 공백으로 처리
>>> "{0:<10}" . format("hi")
'hi '
:>10 : 전체 길이가 10인 문자열 공간에서 값을 오른쪽으로 정렬하고 나머지는 공백으로 처리
>>> "{0:>10}". format("hi")
' hi'
:^10 : 전체 길이가 10인 문자열 공간에서 값을 가운데로 정렬하고 나머지는 공백으로 처리
>>> "{0:^10}" . format("hi")
' hi '
- 공백 채우기
정렬할 때 공백 대신 지정한 문자로 대체
대체할 문자는 정렬 기호(>, ^, <) 앞에 입력하고, 한 글자만 가능
>>> "{0:=^10}" . format("hi")
'====hi===='
>>> "{0:!<10}" . format("hi")
'hi!!!!!!!!'
- 소수점 표현하기
>>> y = 3.42134234
>>> "{0:0.4f}" . format(y)
'3.4213'
>>> y = 3.42134234
>>> "{0:10.3f}" . format(y)
' 3.4213'
>>> y = 3.42134234
>>> "{0:010.4f}" . format(y) # 공백을 0으로 채우기
'00003.4213'
③ f 문자열
- f 문자열 포맷팅
문자열 앞에 'f' 접두사를 붙여서 사용 (대소문자 모두 가능)
f'문자열' 형식 : 지정하고자 하는 데이터 값, 변수, 수식 등을 문자열 안에 중괄호 {}로 감싸 입력
>>> name = '홍길동'
>>> age = 30
>>> f'나의 이름은 {name}입니다. 나이는 {age}입니다.'
'나의 이름은 홍길동입니다. 나이는 30입니다.'
>>> f'나는 내년이면 {age + 1}살이 된다.'
'나는 내년이면 31살이 된다.'
- 정렬하기
>>> f'{"hi":<10}, Python' # 왼쪽 정렬
'hi , Python'
>>> f'{"hi":>10}, Python' # 오른쪽 정렬
' hi, Python'
>>> f'{"hi":^10}, Python' # 가운데 정렬
' hi , Python'
- 공백 채우기
>>> f'{"hi":=^10}' # 가운데 정렬하고 '=' 문자로 공백 채우기
'====hi===='
>>> f'{"hi":!<10}' # 왼쪽 정렬하고 '!' 문자로 공백 채우기
'hi!!!!!!!!'
- 소수점 표현하기
>>> y = 3.42134234
>>> f'{y:0.4f}' # 소수점 4자리까지만 표현
'3.4213'
>>> f'{y:10.4}' # 소수점 4자리까지 표현하고 총 자리수를 10으로 맞춤
' 3.4213'
'Language > Python' 카테고리의 다른 글
[Python] 딕셔너리, 딕셔너리 함수 (0) | 2022.01.22 |
---|---|
[Python] 튜플 (인덱싱과 슬라이싱, 연산하기) (0) | 2022.01.22 |
[Python] 리스트 함수 (0) | 2021.11.17 |
[Python] 리스트 (인덱싱과 슬라이싱, 연산하기, 수정과 삭제) (0) | 2021.11.17 |
[Python] 문자열 함수 (0) | 2021.10.02 |