Python學(xué)習(xí)打call第十天:字節(jié)

1.utf-8編碼格式

我們寫(xiě)python程序的時(shí)候都是使用utf-8編碼格式來(lái)存儲(chǔ)編碼格式,網(wǎng)頁(yè)里面同樣的也聲明utf-8即可, utf-8是中文、英文、日文等全球文字都可以使用的編碼格式,通用性很強(qiáng)。

2.了解bytes和bytearray

  • bytes和bytearray是Python3中兩個(gè)新引入的數(shù)據(jù)類(lèi)型;

  • bytes是字節(jié)組成,有序的,不可變的序列;

  • bytearray和bytes一樣,也是字節(jié)組成的,也是有序的,但它是可變的序列;

3.如何定義bytes?

bytes() 
bytes(9) 
bytes('hello', encoding='utf-8') # 返回 b'hello' ,等價(jià)于:'hello'.encode()
bytes('中國(guó)', encoding='utf-8') # 返回 b'\xe4\xb8\xad\xe5\x9b\xbd' 
  • 字符串轉(zhuǎn)為字節(jié)有兩種方式:指明編碼格式encoding='utf-8',或者是用encode方法;

  • 只有基本的ASCII可以使用字符表示,其他的字符,例如中文,則使用十六進(jìn)制表示;

  • 例如:'你好'的字節(jié)碼為:b'\xe4\xbd\xa0\xe5\xa5\xbd',每個(gè)漢字是3個(gè)字節(jié)組成;

4.bytes操作

print(b'hello'.startswith(b'h'))  #返回 True

print(bytes.fromhex('abcdef'))    #返回 b'\xab\xcd\xef'

print(b'\xab\xcd\xef'.hex())      #返回 abcdef
  • bytes的方法與str類(lèi)似,兩者都是不可變類(lèi)型;

  • str輸入輸出都是str,bytes輸入輸出都是bytes;

5.bytearray的定義

b = bytearray()

bytearray('hello', encoding='utf-8') 返回 bytearray(b'hello') 

6.bytearray操作

  • 由于bytearray可變,其操作類(lèi)似于列表,也有增刪改查等方法;
  • 使用類(lèi)似與:b.insert();

7.編碼與解碼

  • 編碼:使用encode方法,返回字節(jié)序列bytes;
 str.encode(encoding='utf-8', errors='strict') -> bytes
  • 解碼:使用decode方法,返回字符串str;
bytes.decode(encoding="utf-8", errors="strict")-> str
bytearray.decode(encoding="utf-8", errors="strict")-> str 

8.可迭代對(duì)象的切片操作

  • 可以通過(guò)for循環(huán)遍歷對(duì)象中的元素,就是可迭代對(duì)象;

  • 判斷一個(gè)對(duì)象是可迭代對(duì)象,首先導(dǎo)入collections模塊下的Iterable類(lèi)型,然后通過(guò)isinstance返回boolean值,可迭代返回True,不可迭代返回False;

from collections import Iterable
isinstance('abc', Iterable) 
  • 可迭代對(duì)象的切片:類(lèi)似與數(shù)學(xué)區(qū)間的概念,左邊閉區(qū)間,右邊開(kāi)區(qū)間,且左邊一定要小于右邊;
print('abcdefg'[1:4]) 返回:bcd
print([1,2,3,4,5][1:3]) 返回 [2, 3] 

# step

print('abcdefg'[1:6:2]) 返回 bdf    #步長(zhǎng)為2

本文參考自俠課島(9xkd.com)Python同學(xué)計(jì)劃

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容