91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中bytes和str類型的區別

發布時間:2020-09-07 05:21:11 來源:腳本之家 閱讀:142 作者:思念殤千尋 欄目:開發技術

經過一上午的查找資料。大概理清楚了bytes類型和str類型的區別。

bytes類型和str類型在呈現形式有相同之處,如果你print一個bytes類型的變量,會打印一個用b開頭,用單引號括起來的序列。比如:  

>>> c = b'\x80abc'
>>> type(c)
bytes

我們看到c = b'\x80abc'表示的就是一個bytes類型。是不是和字符串很像?只是前面多出來一個b。那b'\x80abc的含義是什么呢?\x80即16進制的兩位數,代表十進制的0-255,同時也代表一個字節,8個bit。abc,即英文字母abc,為什么這里不是\x...的形式呢。因為在utf-8里,一個ASCII碼 的儲存形式完全不變,一個a也就用一個字節來儲存。

那么b'\x80abc'的儲存情況就完全明白了,一共四個字節,每個字節值的情況一目了然。下面再做一個實驗。

>>> A = b'\xe5\x9d\x8fHello'.decode("utf-8","strict")
>>> A
'壞Hello'
>>> type(A)
str

首先要知道utf-8是可變長編碼。中文字符占3個字節,‘壞'字的utf-8碼為\xe5\x9d\x8f 。那么給定一個bytes序列 b'\xe5\x9d\x8fHello', 用utf-8解碼,顯然能得到壞Hello。并且我們看到,解碼之后,A已經變成了str類型,和預想一模一樣。

假如python無法將一個二進制解碼成utf-8碼,則會報錯。比如解碼b'\x80abc'則會報錯:

  'utf-8' codec can't decode byte 0x80 in position 0:invalid start byte

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南漳县| 瑞金市| 鲁甸县| 景宁| 石河子市| 稻城县| 栖霞市| 西丰县| 那曲县| 界首市| 房山区| 邵武市| 田东县| 武乡县| 兴文县| 东源县| 甘南县| 建阳市| 南平市| 马鞍山市| 肥西县| 雷波县| 惠来县| 焦作市| 郓城县| 潜山县| 卢龙县| 黄平县| 沂南县| 肃宁县| 峨眉山市| 大石桥市| 玉屏| 麻城市| 雷波县| 杭州市| 涪陵区| 正蓝旗| 蕲春县| 佛冈县| 屏山县|