긍정적인 사고와 행동으로 선한 영향력을 줄 수 있도록

Python

Python str (문자열 클래스)과 bytes (바이트 클래스)

리거니 2021. 12. 28. 11:43
문자열은 내부적으로 str이라는 클래스 타입인데, 파이썬의 문자열은 기본적으로 유니코드이고, 한번 설정되면 다시 변경시킬 수 없는 Immutable 타입이다

인덱스를 사용하여 문자열 중 특정위치의 문자를 표현할 수 있다. 인덱스는 0로부터 시작하는데, 문자열 s 에 대하여 첫번째 문자는 s[0], 두번째 문자는 s[1] 과 같이 표현된다.

 

# str (문자열 클래스)

s = "ABC"
type(s)     # class 'str'
v = s[1]    # B
type(s[1])  # class 'str'

# s[1]의 타입이 char가 아니라 문자열 str 타입
# type(변수명) = 해당 변수의 타입 리턴

# 자주 사용되는 str 메서드

# str.join()    - 여러 개의 문자열을 하나로 결합 
s = ','.join(['가나','다라','마바'])
c = ''.join(['가나','다라','마바'])
print(s)    # 가나,다라,마바
print(c)    # 가나다라마바

# str.split()   - 문자열을 분리하여 리스트를 리턴 ( join()과 반대 )
items = '가나,다라,마바'.split(',')
print(items)    # ['가나','다라','마바']

# str.partition()   - 문자열을 분리하여 n개의 값을 리턴
departure, _, arrival = "Seattle-Seoul".partition('-')
print(departure)    # Seattle

# str.format()      - 가장 많이 사용

    # 위치를 기준으로 한 포맷팅
s = "Name: {0}, Age: {1}".format("강정수", 30)
print(s)    # Name: 강정수, Age: 30
    # 필드명을 기준으로 한 포맷팅
s = "Name: {name}, Age: {age}".format(name="강정수", age=30)
print(s)    # Name: 강정수, Age: 30
    # Object의 인덱스 혹은 키를 사용한 포맷팅
area = (10, 20)
s = "width: {x[0]}, height: {x[1]}".format(x = area)
print(s)    # width: 10, height: 20

 

bytes 클래스는 일련의 바이트들을 표현하는 클래스로서 bytes는 한번 설정되면 다시 변경할 수 없는 Immutable 타입이다.
또한 str 타입의 문자열을 bytes 타입의 바이트들로 변경하기 위해 str 클래스의 인코딩 메서드 encode()를 사용한다. 반대로 bytes 타입의 바이트 객체을 str 타입의 문자열로 변경하기 위해 bytes 클래스의 디코딩 메서드 decode()를 사용한다

# bytes ( 바이트 클래스 )

s = "Hello"
b = s.encode()
print(b)    # b'Hello'
s2 = b.decode()
print(s2)   # 'Hello'

# 특정 인코딩 방식을 지정한 경우
x = "안녕".encode("UTF-8")
y = x.decode("UTF-8")

'Python' 카테고리의 다른 글

Python 반복문  (0) 2021.12.28
Python 조건문  (0) 2021.12.28
Python 문자열  (0) 2021.12.28
Python 문자열과 바이트  (0) 2021.12.28
Python 비교, 논리 연산자  (0) 2021.12.28