파이썬 내장 데이터 타입 - Text Sequence Type
- str
str 타입은 문자열(string)을 다룰고자 할 때 사용한다.
문자열은 immutable sequence이다.
'Hello World'
"Hello World"
'''Hello World'''
"""Hello
World"""
'"Hello" World' # 작은 따옴표 내 큰 따옴표 사용
"Hello\" World" # 문자열 내 이스케이프 코드(\) 사용
# \n , \t, \\, ...
say1 = 'Hello World'
say2 = 'Hello ' 'World' # -> Hello World
say3 = 'Hello ' * 3 # -> Hello Hello Hello
say4 = 'Hello ' + 'World' # -> Hello World
문자열의 길이 확인 : len(x)
# 'Hello World'
say = 'Hello World'
print(len(say)) # 내장 함수 len()
# -> 11
문자열 인덱싱과 슬라이싱
# 'Hello World'
# ---->
# 0...
# <----
# ...-1
say = 'Hello World'
print(say[0])
# -> 'H'
print(say[-1])
# -> 'd'
print(say[:])
# -> 'Hello World'
print(say[0:4])
# -> 'Hell'
print(say[:4])
# -> 'Hell'
print(say[6:]) # say[6:11] , say[6:12]과 같은 결과 출력
# -> 'World'
print(say[6:-1]) # say[:10]고 같은 결과 출력
# -> 'Worl'
print(say[::2])
# -> 'HloWrd'
print(say[-1::-1])
# -> 'dlroW olleH'
say[0] = '' # 문자열은 immutable (불변) 속성을 가지고 있어 문자열 값 변경은 불가
TypeError: 'str' object does not support item assignment
문자열 포매팅 : format(x, ...)
x = 1
y = 2
print('{0} + {1} = {2}'.format(x, y, x+y))
# -> '1 + 2 = 3'
print('{} + {} = {}'.format(x, y, x+y))
# -> '1 + 2 = 3'
print('{0} + {0} = {1}'.format(x, x+x))
# -> '1 + 1 = 2'
print('{} + {} = {}'.format(x, x+x))
IndexError: Replacement index 2 out of range for positional args tuple
print('{x} + {y} = {x+y}')
# -> '{x} + {y} = {x+y}'
print(f'{x} + {y} = {x+y}')
# -> '1 + 2 = 3'
print('{num_x} + {num_y} = {sum_}'.format(num_x=x, num_y=y, sum_=x+y))
# -> '1 + 2 = 3'
print(f'{x} + {y} = {sum_}'.format(sum_=x+y))
NameError: name 'sum_' is not defined
문자열 정렬
print('{:<20}'.format('Hello')) # 20 문자 기준 왼쪽 정렬
# -> 'Hello '
print('{:>20}'.format('Hello')) # 20 문자 기준 오른쪽 정렬
# -> ' Hello'
print('{:^20}'.format('Hello')) # 20문자 기준 가운데 정렬
# -> ' Hello '
print('{:.<20}'.format('Hello')) # 공잭을 문자 '.'로 채움
# -> 'Hello...............'
print('{0:>10}'.format(1000))
# -> ' 1000'
print('{0:0>10}'.format(1000))
# -> '0000001000'
print('{0:>5.5f}'.format(1.23))
# -> '1.23000'
문자열 관련 str 메서드 (= 함수)
- str.count
- str.find
- str.index
- str.join
- str.upper
- str.lower
- str.lstrip
- str.rstrip
- str.strip
- str.replace
- str.split
say = 'Hello World'
print(say.count('H'))
# -> 1
print(say.count('H'))
# -> 0
print(say.find('l')) # 첫 문자 'l'의 인덱스 정보 반환
# -> 2
print(say.find('l', 3)) # str.find(sub[, start[, end]])
# -> 3
print(say.find('l', 4))
# -> 9
print(say.find('z')) # 문자열에서 찾는 문자가 없다면, -1 값 반환
# -> -1
print(say.index('l')) # str.index(sub[, start[, end]])
# -> 2
print(say.index('z')) # 문자열에서 찾는 문자가 없다면, 오류 발생
ValueError: substring not found
print('.'.join(say))
# -> 'H.e.l.l.o. .W.o.r.l.d'
print(say.upper())
# -> 'HELLO WORLD'
print(say.lower())
# -> 'hello world'
say2 = ' Hello '
print(say2.lstrip()) # 왼쪽 공백이 삭제된 문자열 반환
# -> 'Hello '
print(say2.rstrip())
# -> ' Hello'
print(say2.strip())
# -> 'Hello'
print(say2.strip(' Ho')) # str.strip([chars])
# -> 'ell'
# -> 맨 왼쪽, 오른쪽부터 시작하여 chars에 속하는 문자 모두가 삭제된 문자열 반환
print(say2.replace(' ', '!'))
# -> '!!Hello!!'
print(say2.replace('e', 'E'))
# -> ' HEllo '
print(say2.split()) # 문자열을 나눈 후 리스트 반환
# -> ['Hello']
print(say2.split('e'))
# -> [' H', 'llo ']
'코딩 > 파이썬 기초' 카테고리의 다른 글
[Python] 파이썬 3.9.x 튜토리얼 002. 파이썬 인터프리터를 계산기로 사용하기 (숫자 다루기) (0) | 2021.05.15 |
---|---|
[Python] 파이썬 3.9.x 튜토리얼 001. 파이썬 인터프리터 실행 후 종료 방법 (0) | 2021.05.15 |
[Python] 파이썬 데이터 타입 (자료 형) - 숫자 형을 위한 연산자 (0) | 2021.05.09 |
[Python] 파이썬 논리 및 비교 연산자 (0) | 2021.05.09 |
[Python] 파이썬 데이터 타입 (자료 형) - int, bool, float, complex (0) | 2021.05.09 |