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ù)類型;
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類似份汗,兩者都是不可變類型;
str輸入輸出都是str蝴簇,bytes輸入輸出都是bytes杯活;
5.bytearray的定義
b = bytearray()
bytearray('hello', encoding='utf-8') 返回 bytearray(b'hello')
6.bytearray操作
- 由于bytearray可變,其操作類似于列表熬词,也有增刪改查等方法旁钧;
- 使用類似與: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類型田篇,然后通過(guò)isinstance返回boolean值,可迭代返回True箍铭,不可迭代返回False泊柬;
from collections import Iterable
isinstance('abc', Iterable)
- 可迭代對(duì)象的切片:類似與數(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ì)劃