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ì)劃