2017-04-27 6 views
2

나는 여기에 간단한 질문이 있습니다 : 즉왜 이스케이프 문자가 파이썬에서 x0과 같은 문자열로 변환됩니까?

['\x00', 1, 2, 3] 

, 왜, 어떻게 이스케이프 문자 \\x0되어 버렸네 :

mylist=[1,2,3] 
mylist.insert(0, '\0') 
print(mylist) 

우리 준다?
여기에 몇 가지 목적이 있습니까? 이게 인코딩 일인가요?

왜 파이썬은 다른 표현을 통해 하나의 표현을 반환합니까?

+4

'\ 0 '와'\의 x00' 같은 일의 두 가지 표현입니다 : 0 바이트. –

+0

'표현'은 사람이 읽을 수있는 출력물을 의미합니까? 또는 다른 것? 왜 똑같은 것에 대해 두 가지 다른 표현이 나타나는 이유는 무엇입니까? DRY는 프로그래밍 및 디자인의 모든 단계에서 기본적인 집회가 아니십니까? –

+0

DRY는 완전히 관련이 없습니다. 그리고 항상 인간이 읽을 수 있거나 생각할 수없는 많은 표현이 있습니다. 귀하의 경우에는 8 진수와 0 진수 표현이 있습니다. –

답변

2

그래서 \<various single characters>은 특별한 의미가 있으며 \xYY은 16 진수 값 YY 인 문자입니다. 다음 (다른 사람들이) 동일합니다 탭이 등 9로 그리고 일반적으로 인코딩되어 있기 때문에

>>> assert '\0' == '\x00' # null 
>>> assert '\t' == '\x09' # tab 
>>> assert '\r' == '\x0d' # carriage return 
>>> assert '\n' == '\x0a' # line feed 

이것은, 파이썬은 당신에게 문자의 16 진수 값은 가장 일반적인 표현을 보여줍니다되어, 캐릭터 자체를 보여줄 수없는 경우.

(String Literal Docs)