PythonPython에서 바이트를 배우고 이해하려면 매일 바이트를 배워야 합니다. 관심 있는 친구는
B'xxx' 형식으로 표현되는 Python의 바이트코드를 참고하세요. x는 문자로 표시될 수도 있고 xnn 형식의 ASCII 인코딩으로 표시될 수도 있습니다. nn 범위는 00-ff(16진수)이며 총 256자입니다.
1. 기본 동작
바이트의 기본 동작은 String과 매우 유사함을 알 수 있습니다. 🎜>
In[40]: b = b"abcd\x64" In[41]: b Out[41]: b'abcdd' In[42]: type(b) Out[42]: bytes In[43]: len(b) Out[43]: 5 In[44]: b[4] Out[44]: 100 # 100用十六进制表示就是\x64바이트 문자열의 바이트를 수정하려면 직접 수정할 수 없습니다. 바이트 배열로 변환한 후 수정해야 합니다.
In[46]: barr = bytearray(b) In[47]: type(barr) Out[47]: bytearray In[48]: barr[0] = 110 In[49]: barr Out[49]: bytearray(b'nbcdd')
2. 바이트와 문자의 관계
바이트와 문자는 실제로 매우 유사하다고도 언급했습니다. 서로 변환됩니다. 바이트는 일부 인코딩 형식을 통해 해당 문자로 변환될 수 있습니다. encode() 메서드를 통해 인코딩 메서드를 전달하면 바이트를 문자로 변환할 수 있고, decode() 메서드를 통해 문자를 바이트로 변환할 수 있습니다.In[50]: s = "人生苦短,我用Python" In[51]: b = s.encode('utf-8') In[52]: b Out[52]: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa6\xe7\x9f\xad\xef\xbc\x8c\xe6\x88\x91\xe7\x94\xa8Python' In[53]: c = s.encode('gb18030') In[54]: c Out[54]: b'\xc8\xcb\xc9\xfa\xbf\xe0\xb6\xcc\xa3\xac\xce\xd2\xd3\xc3Python' In[55]: b.decode('utf-8') Out[55]: '人生苦短,我用Python' In[56]: c.decode('gb18030') Out[56]: '人生苦短,我用Python' In[57]: c.decode('utf-8') Traceback (most recent call last): exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-57-8b50aa70bce9>", line 1, in <module> c.decode('utf-8') UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte In[58]: b.decode('gb18030') Out[58]: '浜虹敓鑻︾煭锛屾垜鐢≒ython'우리는 다음과 같이 할 수 있습니다. 서로 다른 인코딩 방법을 사용하여 구문 분석된 문자와 바이트는 완전히 다릅니다. 인코딩과 디코딩에 서로 다른 인코딩 방법을 사용하면 잘못된 문자가 생성되거나 변환도 실패합니다. 각 인코딩 방법에는 서로 다른 바이트 유형 수가 포함되어 있으므로 위 예의 xc8은 최대 문자인 utf-8을 초과합니다.
3. 애플리케이션
가장 간단한 예로, Baidu에서 Python을 검색할 때 반환되는 페이지를 크롤링해 보겠습니다. Baidu는 UTF-8 인코딩 형식을 사용합니다. 반환 결과가 디코딩되지 않으면 매우 긴 바이트 문자열이 됩니다. 올바르게 디코딩되면 일반 HTML 페이지가 표시될 수 있습니다.import urllib.request url = "http://www.baidu.com/s?ie=utf-8&wd=python" page = urllib.request.urlopen(url) mybytes = page.read() encoding = "utf-8" print(mybytes.decode(encoding)) page.close()위 내용은 Python 프로그래밍을 배우는 모든 분들에게 도움이 되는 내용이길 바랍니다.
위 내용은 파이썬 학습에서 꼭 배워야 할 바이트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!