補充 pyhton 2 和3中的beyts型別

2022-05-10 00:50:01 字數 622 閱讀 2950

在python2裡,bytes == str 

python2裡還有個單獨的型別是unicode , 把字串解碼後,就會變成unicode.

既然python2中byets == str,那為什麼還要有bytes型別呢?

在python2中,如何定義乙個unicode型別的資料呢?

s = u"中國"  # 這樣就定義了乙個unicode型別的資料.

在python2中以utf-8,gbk 或其他編碼編寫的**,載入的記憶體中,依然是原來的編碼型別.不會變化

在python3中以utf-8,gbk 或其他編碼編寫的**,載入的記憶體中,會自動轉換成unicode

unicode 和 utf-8的關係:

當檔案儲存為unicode格式後,檔案在全球其他電腦上就可以正常顯示了.因為unicode會自動把檔案的資料型別轉換為使用者電腦編碼的型別來顯示.

py3 除了把字串的編碼改成了unicode, 還把str 和bytes 做了明確區分, str 就是unicode格式的字元, bytes就是單純二進位制啦。

py3 str = py2 unicode

最後再提示一下,python只要出現各種編碼問題,無非是**的編碼設定出錯了

常見編碼錯誤的原因有:

Python2和Python3中 的區別

首先區別於 表示整除,被除數和除數均為整型時 得到的結果為整型,被除數和除數至少有乙個是浮點型時,得到的結果是浮點型。也就是說 操作python2和python3沒有區別 表示除法,在python3中,無論被除數和除數是哪種型別,得到的都是浮點型。在python2中,被除數和除數至少有乙個浮點型時,...

python2和3中zip的差異 坑

最近用python寫個東西,裡面用到了乙個zip,記憶體飆公升,甚是費解,查閱資料後發現zip在python2和3中的機制不同 class foo object def init self self.items range 3 def getitem self,i print getitem i r...

HTML CSS3 中的2D 3D和動畫效果

雖然我們我們在前端工作中,對於2d 3d和動畫效果一般來說都用不上,基本上都是用js或jq來完成這些動畫效果,但是最基礎的這些你是否已經忘記了呢?昨天重溫了一下這些東西,順手寫了兩個小例子 首先 在html中定義乙個div,只需要乙個div即可,我使用偽元素來畫出 通過以上 我們就得到了乙個紅紅火火...