


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Python字節(jié)串類型bytes及用法一、bytes字節(jié)串類型概述
Python3新增了bytes類型,用于代表字節(jié)串,是一個(gè)類型,不是C#中的列表。
由于bytes保存的就是原始的字節(jié)(二進(jìn)制格式)數(shù)據(jù),因此bytes對象可用于在網(wǎng)絡(luò)上傳輸數(shù)據(jù),也可用于存儲(chǔ)各種二進(jìn)制格式的文件,比如圖片、音樂等文件。
1、字節(jié)串與字符串之間的區(qū)別
bytes和str除操作的數(shù)據(jù)單元不同之外,它們支持的所有方法都基本相同,bytes也是不可變序列。
字符串(str)由多個(gè)字符組成,以字符為單位進(jìn)行操作;字節(jié)串(bytes)由多個(gè)字節(jié)組成,以字節(jié)為單位進(jìn)行操作。
2、字節(jié)概述
計(jì)算機(jī)底層有兩個(gè)基本概念:位(bit)和字節(jié)(Byte),其中
bit代表1位,要么是0,要么是1;Byte代表1字節(jié),1字節(jié)包含8位。
在字節(jié)串中每個(gè)數(shù)據(jù)單元都是字節(jié),也就是8位,其中每4位(相當(dāng)于4位二進(jìn)制數(shù),最小值為0,最大值為15)可以用一個(gè)十六進(jìn)制數(shù)來表示,因此每字節(jié)需要兩個(gè)十六進(jìn)制數(shù)表示,
b'\xe6\x88\x91\xe7\x88\xb1Python\xe7\xbc\x96\xe7\xa8\x8b',
#比如:\xe6就表示1字節(jié),其中\(zhòng)x表示十六進(jìn)制,e6就是兩位的十六進(jìn)制數(shù)。
Unicode字符集,包括漢字,為兩個(gè)字節(jié)(16位,支持65536個(gè)字符編號)。實(shí)際使用的UTF-8,UTF-16等其實(shí)都屬于Unicode字符集。
二、字節(jié)串與字符串之間的轉(zhuǎn)換
bytes對象只負(fù)責(zé)以字節(jié)(二進(jìn)制格式)序列來記錄數(shù)據(jù),至于這些數(shù)據(jù)到底表示什么內(nèi)容,完全由程序決定。如果采用合適的字符集,字符串可以轉(zhuǎn)換成字節(jié)串;反過來,字節(jié)串也可以恢復(fù)成對應(yīng)的字符串。
1、將一個(gè)字符串轉(zhuǎn)換成bytes對象
如果希望將一個(gè)字符串轉(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)建一個(gè)空的bytes
b1=bytes()
#創(chuàng)建一個(gè)空的bytes值
b2=b''
#1、通過b前綴指定hello是bytes類型的值
b3=b'hello'
print(b3)
print(b3[0])
print(b3[2:4])
#b'hello'
#b'll'
調(diào)用bytes()函數(shù)(其實(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é)串里的每個(gè)數(shù)據(jù)單元都是1字節(jié)。
2、decode():將一個(gè)bytes對象轉(zhuǎn)換成字符串
如果程序獲得了bytes對象,也可調(diào)用bytes對象的decode()方法將其解碼成字符串,
#將bytes對象解碼成字符串,默認(rèn)使用UTF-8進(jìn)行解碼
st=b5.deco
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來網(wǎng)絡(luò)技術(shù)的挑戰(zhàn)與發(fā)展試題及答案
- 網(wǎng)絡(luò)工程師行業(yè)競賽試題及答案
- 中藥配方顆粒質(zhì)量標(biāo)準(zhǔn)優(yōu)化與2025年市場競爭態(tài)勢報(bào)告
- 保險(xiǎn)業(yè)數(shù)字化轉(zhuǎn)型背景下2025年理賠服務(wù)標(biāo)準(zhǔn)化研究報(bào)告
- 網(wǎng)絡(luò)工程師如何制定個(gè)人職業(yè)規(guī)劃試題及答案
- 2025年生態(tài)修復(fù)工程中生態(tài)系統(tǒng)服務(wù)功能評估與土壤修復(fù)技術(shù)報(bào)告
- 光伏電站智能化運(yùn)維與發(fā)電量提升的智能化運(yùn)維設(shè)備產(chǎn)業(yè)鏈分析報(bào)告
- 2025年教育信息化2.0時(shí)代教師教學(xué)策略與專業(yè)成長研究報(bào)告
- 數(shù)字化轉(zhuǎn)型對傳統(tǒng)文化產(chǎn)業(yè)的影響
- 機(jī)電工程中材料力學(xué)應(yīng)用實(shí)例試題及答案
- DB32/T 4220-2022消防設(shè)施物聯(lián)網(wǎng)系統(tǒng)技術(shù)規(guī)范
- 車位轉(zhuǎn)讓合同協(xié)議書
- 合伙經(jīng)營貨車輛協(xié)議書
- 2025年農(nóng)村個(gè)人果園承包合同
- 湖北省武漢市2025屆高三年級五月模擬訓(xùn)練試題數(shù)學(xué)試題及答案(武漢五調(diào))
- 企業(yè)管理流程數(shù)字化轉(zhuǎn)型計(jì)劃
- 機(jī)械通氣患者護(hù)理
- 2025年數(shù)控技術(shù)專業(yè)畢業(yè)考試試題及答案
- 車牌租賃協(xié)議和抵押合同
- 《張敏瑞的傳奇人生》課件
評論
0/150
提交評論