最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中bytes和str類(lèi)型的區(qū)別

 更新時(shí)間:2019年10月21日 09:40:40   作者:思念殤千尋  
這篇文章主要介紹了python中bytes和str類(lèi)型的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

經(jīng)過(guò)一上午的查找資料。大概理清楚了bytes類(lèi)型和str類(lèi)型的區(qū)別。

bytes類(lèi)型和str類(lèi)型在呈現(xiàn)形式有相同之處,如果你print一個(gè)bytes類(lèi)型的變量,會(huì)打印一個(gè)用b開(kāi)頭,用單引號(hào)括起來(lái)的序列。比如:  

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

我們看到c = b'\x80abc'表示的就是一個(gè)bytes類(lèi)型。是不是和字符串很像?只是前面多出來(lái)一個(gè)b。那b'\x80abc的含義是什么呢?\x80即16進(jìn)制的兩位數(shù),代表十進(jìn)制的0-255,同時(shí)也代表一個(gè)字節(jié),8個(gè)bit。abc,即英文字母abc,為什么這里不是\x...的形式呢。因?yàn)樵趗tf-8里,一個(gè)ASCII碼 的儲(chǔ)存形式完全不變,一個(gè)a也就用一個(gè)字節(jié)來(lái)儲(chǔ)存。

那么b'\x80abc'的儲(chǔ)存情況就完全明白了,一共四個(gè)字節(jié),每個(gè)字節(jié)值的情況一目了然。下面再做一個(gè)實(shí)驗(yàn)。

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

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

假如python無(wú)法將一個(gè)二進(jìn)制解碼成utf-8碼,則會(huì)報(bào)錯(cuò)。比如解碼b'\x80abc'則會(huì)報(bào)錯(cuò):

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

肃宁县| 海盐县| 开化县| 武宁县| 锡林浩特市| 和田市| 宣威市| 阿拉善左旗| 宁都县| 楚雄市| 辉县市| 新沂市| 祥云县| 子洲县| 富宁县| 丰镇市| 南昌县| 柳州市| 南昌市| 宜兰县| 锦屏县| 马关县| 陆丰市| 萝北县| 任丘市| 台江县| 富裕县| 石首市| 左云县| 克拉玛依市| 皮山县| 宁德市| 甘泉县| 鄂托克旗| 堆龙德庆县| 德阳市| 龙游县| 隆安县| 文安县| 池州市| 攀枝花市|