欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python字節(jié)串類型bytes及用法

 更新時間:2022年05月28日 10:30:05   作者:springsnow  
這篇文章介紹了Python字節(jié)串類型bytes及用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、bytes 字節(jié)串類型概述

Python 3 新增了 bytes 類型,用于代表字節(jié)串,是一個類型,不是C#中的列表。

由于 bytes 保存的就是原始的字節(jié)(二進制格式)數(shù)據(jù),因此 bytes 對象可用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù),也可用于存儲各種二進制格式的文件,比如圖片、音樂等文件。

1、字節(jié)串與字符串之間的區(qū)別

bytes 和 str 除操作的數(shù)據(jù)單元不同之外,它們支持的所有方法都基本相同,bytes 也是不可變序列。

  • 字符串(str)由多個字符組成,以字符為單位進行操作;
  • 字節(jié)串(bytes)由多個字節(jié)組成,以字節(jié)為單位進行操作。

2、字節(jié)概述

計算機底層有兩個基本概念:位(bit)和字節(jié)(Byte),其中

  • bit 代表 1 位,要么是 0,要么是 1;
  • Byte 代表 1 字節(jié),1 字節(jié)包含 8 位。

在字節(jié)串中每個數(shù)據(jù)單元都是字節(jié),也就是 8 位,其中每 4 位(相當(dāng)于 4 位二進制數(shù),最小值為 0 ,最大值為 15)可以用一個十六進制數(shù)來表示,因此每字節(jié)需要兩個十六進制數(shù)表示,

b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b',
# 比如 :\xe6 就表示 1 字節(jié),其中 \x 表示十六進制,e6 就是兩位的十六進制數(shù)。

Unicode 字符集,包括漢字,為兩個字節(jié)(16 位,支持 65536 個字符編號)。實際使用的 UTF-8, UTF-16 等其實都屬于 Unicode 字符集。

二、字節(jié)串與字符串之間的轉(zhuǎn)換

bytes 對象只負(fù)責(zé)以字節(jié)(二進制格式)序列來記錄數(shù)據(jù),至于這些數(shù)據(jù)到底表示什么內(nèi)容,完全由程序決定。如果采用合適的字符集,字符串可以轉(zhuǎn)換成字節(jié)串;反過來,字節(jié)串也可以恢復(fù)成對應(yīng)的字符串。

1、將一個字符串轉(zhuǎn)換成 bytes 對象

如果希望將一個字符串轉(zhuǎn)換成 bytes 對象,有如下三種方式:

下面程序中 b1~b5 都是字節(jié)串對象,該程序示范了以不同方式來構(gòu)建字節(jié)串對象。其中 b2、b3 都是直接在 ASCII 字符串前添加b前綴來得到字節(jié)串的:b4 調(diào)用 bytes() 函數(shù)來構(gòu)建字節(jié)串;而 b5 則調(diào)用字符串的 encode 方法來構(gòu)建字節(jié)串。

  • 如果字符串內(nèi)容都是 ASCII 字符,則可以通過直接在字符串之前添加 b 來構(gòu)建字節(jié)串值。
# 創(chuàng)建一個空的bytes
b1 = bytes()
# 創(chuàng)建一個空的bytes值
b2 = b''
# 1、通過b前綴指定hello是bytes類型的值
b3 = b'hello'
print(b3)
print(b3[0])
print(b3[2:4])

#b'hello'
#104
#b'll'
  • 調(diào)用 bytes() 函數(shù)(其實是 bytes 的構(gòu)造方法)將字符串按指定字符集轉(zhuǎn)換成字節(jié)串,
    如果不指定字符集,默認(rèn)使用 UTF-8 字符集。
# 調(diào)用bytes方法將字符串轉(zhuǎn)成bytes對象
b4 = bytes('我愛Python編程',encoding='utf-8')
print(b4)
#b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b'
  • 調(diào)用字符串本身的encode() 方法將字符串按指定字符集轉(zhuǎn)換成字節(jié)串(常用)
    如果不指定字符集,默認(rèn)使用 UTF-8 字符集。
# 利用字符串的encode()方法編碼成bytes,默認(rèn)使用utf-8字符集
b5 = "學(xué)習(xí)Python很有趣".encode('utf-8')
print(b5)
#b'\xe5\xad\xa6\xe4\xb9\xa0Python\xe5\xbe\x88\xe6\x9c\x89\xe8\xb6\xa3'

從上面的輸出結(jié)果可以看出,字節(jié)串和字符串非常相似,只是字節(jié)串里的每個數(shù)據(jù)單元都是 1 字節(jié)。

2、decode():將一個bytes 對象轉(zhuǎn)換成字符串

如果程序獲得了 bytes 對象,也可調(diào)用 bytes 對象的 decode() 方法將其解碼成字符串,

#將bytes 對象解碼成字符串,默認(rèn)使用UTF-8進行解碼
st = b5.decode('utf-8')
print(st)#學(xué)習(xí)Python很有趣

到此這篇關(guān)于Python字節(jié)串類型bytes及用法的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 用pywin32實現(xiàn)windows模擬鼠標(biāo)及鍵盤動作

    用pywin32實現(xiàn)windows模擬鼠標(biāo)及鍵盤動作

    這篇文章主要介紹了用pywin32實現(xiàn)windows模擬鼠標(biāo)及鍵盤動作的示例,需要的朋友可以參考下
    2014-04-04
  • Python機器學(xué)習(xí)NLP自然語言處理基本操作詞袋模型

    Python機器學(xué)習(xí)NLP自然語言處理基本操作詞袋模型

    本文是Python機器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程。本篇文章主要學(xué)習(xí)NLP自然語言處理基本操作之詞袋模型
    2021-09-09
  • python實現(xiàn)會員信息管理系統(tǒng)(List)

    python實現(xiàn)會員信息管理系統(tǒng)(List)

    這篇文章主要為大家詳細介紹了python實現(xiàn)會員信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python入門教程4. 元組基本操作

    Python入門教程4. 元組基本操作

    這篇文章主要介紹了Python元組基本操作,簡單介紹了元組的創(chuàng)建、count方法元素統(tǒng)計、index方法元素獲取等相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2018-10-10
  • Python裝飾器實現(xiàn)幾類驗證功能做法實例

    Python裝飾器實現(xiàn)幾類驗證功能做法實例

    下面小編就為大家?guī)硪黄狿ython裝飾器實現(xiàn)幾類驗證功能做法實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • ?Python錯誤與異常處理

    ?Python錯誤與異常處理

    這篇文章主要介紹了?Python錯誤與異常處理,錯誤與異常處理在Python中具有非常重要的地位,熟練的使用錯誤與異常處理能夠為我們的Python編程提供很多的便利之處,希望您閱讀完本文后能夠有所收獲
    2022-01-01
  • python不到50行代碼完成了多張excel合并的實現(xiàn)示例

    python不到50行代碼完成了多張excel合并的實現(xiàn)示例

    這篇文章主要介紹了python不到50行代碼完成了多張excel合并的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 探究Python的Tornado框架對子域名和泛域名的支持

    探究Python的Tornado框架對子域名和泛域名的支持

    這篇文章主要介紹了探究Python的Tornado框架對子域名和泛域名的支持,Tornado作為一個典型的異步框架、在Python開發(fā)者中的人氣相當(dāng)高,需要的朋友可以參考下
    2015-05-05
  • django項目中使用云片網(wǎng)發(fā)送短信驗證碼的實現(xiàn)

    django項目中使用云片網(wǎng)發(fā)送短信驗證碼的實現(xiàn)

    這篇文章主要介紹了django項目中使用云片網(wǎng)發(fā)送短信驗證碼的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 如何實現(xiàn)刪除numpy.array中的行或列

    如何實現(xiàn)刪除numpy.array中的行或列

    如何實現(xiàn)刪除numpy.array中的行或列?今天小編就為大家分享一篇對刪除numpy.array中行或列的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論