python基礎 python3中str和bytes

來源:互聯網
上載者:User

標籤:utf-8   視頻   字元   強制   發送   socket   表示   位元組碼   操作   

str和bytes在python3中做了區分;bytes表示二進位位元組、str表示文本字串;文本總是Unicode,由str類型表示,位元據則由bytes類型表示。Python 3不會以任意隱式的方式混用str和bytes,兩者在混合使用的時候,需要編碼轉換

 字串和位元組包之間的界線是必然的,字串可以編碼成位元組包,而位元組包可以解碼成字串,下面的圖解非常重要,務請牢記於心:

 

舉例:

>>>‘€20‘.encode(‘utf-8‘)    # encode(參數)表示被轉換之前的格式類型b‘\xe2\x82\xac20‘       # b表示是二進位格式
>>> b‘\xe2\x82\xac20‘.decode(‘utf-8‘) #
‘€20‘

str->bytes:encode編碼; 編碼就是將字串轉換成位元組碼,涉及到字串的內部表示。
bytes->str:decode解碼;  解碼就是將位元組碼轉換為字串,將位元位顯示成字元。

 

在純粹操作字串類型的資料時,不需要考慮字串和二進位的轉換,只有在將字串編碼成位元組包(例如,使用socket網路開發,在通道上發送它們;python3都是以二進位傳輸)或從位元組包解碼字串(在編程時候,如果程式只能處理文本不能處理二進位,需要轉換)時,我們才會開始關注這點。在電腦中,視頻是以二進位格式儲存、文本是以字串格式儲存(實際上也可以強制儲存為二進位)。

python基礎 python3中str和bytes

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.