Python3中 bytes str的區別

2021-06-21 23:16:53 字數 611 閱讀 1999

python3中最大的新特性就是對文字和二進位制資料做了更清晰的區分。文字通常是unicode字符集,並且用str字串型別表示,而二進位制資料用bytes位元組型別表示。在python3中,字串str和位元組bytes是不可以混合使用的,這也使得二者之間更以區分。你不能將字串和位元組連線起來,不能在字串中得到位元組,也不能在位元組中得到字串,也不能通過函式傳參字串以期望得到位元組,反之亦然。

字串和位元組間是由區別的,下面的關係應該牢記在心:

字串可被編碼為位元組,位元組可被解碼為字串

可以這樣考慮,字串是文字的一種抽象表示。乙個字串有很多字元組成,字元是與任何特定二進位制表示無關的抽象實體。處理字串時,可以對其進行分割、切片、連線、搜尋操作。我們不關心字串在內部是如何被表示的,也不關心它用幾個位元組來表示每個字元。只有在將字串編碼成位元組(如用於通訊通道的傳輸)或將位元組解碼成字串時,才考慮這些問題。

編碼可以將抽象字元以二進位制資料的形式表示,有很多編碼方法,如utf-8。編碼是傳輸過程中非常重要的一部分,沒有編碼,位元組物件只是一簇二進位制位。是編碼讓位有意義。對位進行不同編碼可獲得不同結果。

python3中異常處理 Python3異常處理

python的異常處理機制 使用 try.except 捕獲異常 try 業務實現 except error1,error2,as e 出現異常後的處理 異常類的繼承關係 baseexception systemexit keyboardinterrupt generatorexit excepti...

python3怎麼賦值 python3中賦值問題?

我閒著沒事乾來詳細回答一波。phthon的物件實際儲存在記憶體上,而變數名對應了乙個位址,位址指向了那一塊記憶體。在第一例中,python在記憶體中開出了一片用來儲存int值1,然後將它的位址賦值給a,接下來a把位址賦值給b。此時a,b指向同乙個int值物件。後來b 1的操作做的是先計算b 1,計算...

python3中文長度 python3獲得漢字長度

import string def str count str 找出字串中的中英文 空格 數字 標點符號個數 count en count dg count sp count zh count pu 0 for s in str 英文 if s in string.ascii letters cou...