반응형
[ 파이썬 str 정리 ]
help(str) : str 도움말 보기
help(str)
'''
[출력값]
class str(object)
str(object='') -> str
str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or
errors is specified, then the object must expose a data buffer
that will be decoded using the given encoding and error handler.
Otherwise, returns the result of object.__str__() (if defined)
or repr(object).
encoding defaults to sys.getdefaultencoding().
errors defaults to 'strict'.
'''
< explanation >
str() : object 를 string 으로 변환합니다.
< syntax of str() >
* object 만 정의하는 경우
str(object='')
* encoding, errors 를 정의하는 경우
str(object=b'', encoding='utf-8', errors='strict')
- object : string 으로 변환될 객체, 기본값 = "" (empty)
- encoding : object 의 Encoding 방식을 정의, 기본값 = 'utf-8'
- errors : object decoding 실패 시 Response 방식 정의, 기본값 = 'strict'
errors 의 Response 방식 6 가지
1. strict : UnicodeDecodeError 예외를 발생시킵니다.
a = bytes('hellö', encoding='utf-8')
print(str(a, encoding='ascii', errors='strict'))
# 출력값 : UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)
2. ignore : Encoding 할 수 없는 Unicode 를 제외하고 결과값을 출력합니다.
a = bytes('hellö', encoding='utf-8')
print(str(a, encoding='ascii', errors='ignore'))
# 출력값 : hell
3. replace : Encoding 할 수 없는 Unicode 를 물음표("?")로 대체합니다.
a = bytes('hellö', encoding='utf-8')
print(str(a, encoding='ascii', errors='replace'))
# 출력값 : hell��
4. xmlcharrefreplace : Encoding 할 수 없는 Unicode 대신 XML character reference 를 입력합니다.
5. backslashreplace : Encoding 할 수 없는 Unicode 대신 \uNNNN espace sequence 를 입력합니다.
a = bytes('hellö', encoding='utf-8')
print(str(a, encoding='ascii', errors='backslashreplace'))
# 출력값 : hell\xc3\xb6
6. namereplace : Encoding 할 수 없는 Unicode 대신 \N{...} escape sequence 를 입력합니다.
object : Create a new string object from the given object.
- str(object) 에서 object 로 정의된 객체를 문자열로 변환합니다.
- object 의 기본값은 공백('') 입니다.
- object 의 기본값이 0이기 때문에 str() 과 같이 인자를 부여하지 않은 경우 공백('') 을 반환합니다.
# 객체를 문자열로 변환
print(str(123)) # 출력값 : '123'
print(str(['a', 'b', 'c'])) # 출력값 : "['a', 'b', 'c']"
print(str(('a', 'b', 'c'))) # 출력값 : "('a', 'b', 'c')"
# object 기본값 = 공백('')
print(str()) # 출력값 : '' # 출력값 :
encoding, errors : If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to 'strict'.
- encoding 은 object 의 encoding 방식을 정의하는 인자입니다.
- errors 는 object decoding 실패 시 Response 방식을 정의하는 인자이며, 총 6 가지 종류가 있습니다.
- 단 encoding, errors 가 정의되었다면 object 는 반드시 bytes 혹은 bytearray 값으로 정의되어야 합니다.
- encoding 의 기본값은 'utf-8 이며, errors 의 기본값은 strict입니다.
- object 가 bytes 혹은 bytearray 값이고 encoding, errors 가 정의되지 않았다면, bytes 혹은 bytearray 형태 그대로 string type으로 변경됩니다.
# encoding, errors 가 정의되었다면 object 는 반드시 bytes 혹은 bytearray 값으로 정의
a = bytes('abcde', encoding='utf-8')
print(str(a, encoding='utf-8', errors='strict')) # 출력값 : abcde
a = 'abcde'
print(str(a, encoding='utf-8', errors='strict')) # 출력값 : TypeError: decoding str is not supported
# object 가 bytes 혹은 bytearray 값이고 encoding, errors 가 정의되지 않았다면
a = bytes('abcde', encoding='utf-8')
print(str(a)) # 출력값 : b'abcde'
반응형
'개발 > Python' 카테고리의 다른 글
[파이썬, Python] numpy 활용법 총정리 (0) | 2024.07.07 |
---|---|
[파이썬, Python] 함수 만들기 (0) | 2022.04.15 |
[파이썬, Python] int 정리 (0) | 2022.04.05 |
[파이썬, Python] 한 줄에 여러 print 출력하기 (0) | 2022.04.04 |
[파이썬, Python] print 정리 (0) | 2022.04.02 |