python中bytes和str類(lèi)型的區(qū)別
經(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í)有所幫助,也希望大家多多支持腳本之家。
- Python3中的bytes類(lèi)型和str類(lèi)型
- Python內(nèi)建類(lèi)型bytes深入理解
- Python中的bytes類(lèi)型用法及實(shí)例分享
- python數(shù)據(jù)類(lèi)型bytes?和?bytearray的使用與區(qū)別
- 簡(jiǎn)單了解Python3 bytes和str類(lèi)型的區(qū)別和聯(lián)系
- Python3中的bytes和str類(lèi)型詳解
- 對(duì)python的bytes類(lèi)型數(shù)據(jù)split分割切片方法
- Python3中bytes類(lèi)型轉(zhuǎn)換為str類(lèi)型
- Python字節(jié)串類(lèi)型bytes及用法
相關(guān)文章
Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能實(shí)例
百度AI功能還是很強(qiáng)大的,百度AI開(kāi)放平臺(tái)真的是測(cè)試接口的天堂,免費(fèi)接口很多,當(dāng)然有量的限制,但個(gè)人使用是完全夠用的,下面這篇文章主要給大家介紹了關(guān)于Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能的相關(guān)資料,需要的朋友可以參考下2021-09-09python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5單行文本框控件QLineEdit詳細(xì)使用方法與實(shí)例,需要的朋友可以參考下2020-02-02淺談pandas.cut與pandas.qcut的使用方法及區(qū)別
這篇文章主要介紹了淺談pandas.cut與pandas.qcut的使用方法及區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Python-Selenium自動(dòng)化爬蟲(chóng)
本文介紹Python-Selenium自動(dòng)化爬蟲(chóng),Selenium是一個(gè)Web的自動(dòng)化測(cè)試工具,最初是為網(wǎng)站自動(dòng)化測(cè)試而開(kāi)發(fā)的,Selenium?可以直接運(yùn)行在瀏覽器上,它支持所有主流的瀏覽器,可以接收指令,讓瀏覽器自動(dòng)加載頁(yè)面,獲取需要的數(shù)據(jù),甚至頁(yè)面截屏,xiamian?neir?需要的朋友可以參考下2022-01-01