91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python內置數據結構——bytes,bytearray

發布時間:2020-04-30 14:39:37 來源:網絡 閱讀:12525 作者:AiSmile 欄目:編程語言

bytes,bytearray

字符串與bytes

  • 字符串是字符組成的有序序列,字符可以使用編碼來理解

  • bytes是字節組成的有序的不可變序列

  • bytesarray是字節組成的有序的可變序列

編碼與解碼

  • 字符串按照不同的字符集編碼encode返回字序列bytes

            bytes.encode(encoding = 'utf - 8',errors = 'stirct') -> bytes

  • 字節序列按照不同的字符集解碼decode 返回字符串

            bytes.decode(encoding = "utf - 8",errors = "strict") -> str

            bytearray.decode(encoding ="utf - 8",errors = "strict" ) -> str

ASCII

            ASCII(American Standard Code for information Interchange,美國信息交換標準代碼)是基于拉丁字母的一套單字節編碼系統

bytes定義

  • bytes() 空bytes

  • bytes(int) 指定字節bytes,被0填充

  • bytes(iterable_of_ints) -> bytes[0~255] 的int組成的可迭代對象

  • bytes(string,encodeing[,errors]) -> bytes  等價于string.encode()

  • bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer從一個字節序列或者buffer復制出一個新的額不可變的bytes對象

  • 使用b 前綴定義

            只允許基本ASCII使用字符形式 b'abc9'

            使用16進制表示b'\x41\x61'

bytes操作

  • 和str類型類似,都是不可變類型,所以犯法很多都一樣,只不過bytes的方法,輸入是bytes,輸出是bytes

    • b'abcdef'.replace(b'f',b'k')

    • b'abc'.find(b'b')

  • 類方法 bytes.fromhex(string)

    • string必須是2 個字符的16進制的形式,"6162 6a 6b", 空格將被忽略

    • bytes.fromhex("6162 09 6a 6b00")

  • hex()

    • 返回16 進制表示的字符串

    • "abc".encode().hex()

  • 索引

    • b.'abcdef'[2] 返回該字節對應的數,int類型

bytearray定義

定義:

  • bytearray()空bytearray

  • bytearray(int) 指定字節的bytearray, 被0 填充

  • bytearray(iterable_of_ints) -> bytearray  [0,255]的int組成的可迭代對象

  • bytearray(string,encoding[,errors]) -> bytearry 近似string.encode() ,不過返回可變對象

  • bytearray(bytes_or_buffer)從一個字節序列或者buffer復制出一個新的可變的bytearray對象

注意:b前綴定義的類型是bytes類型

bytearray操作

  • 和bytes類型的方法相同

    • bytearray(b'abcdef').replace(b'f',b'k')

    • bytearray(b'abc').find(b'b')

  • 類方法 bytearray.fromhex(string)

    • string必須是2 個字符的16進制的形式,‘6162 6a 6b’,空格將被忽略

    • bytearray.fromhex('6162 09 6a 6b00')

  • hex()

    • 返回16 進制表示的字符串

    • bytearray('abc'.encode()).hex()

  • 索引

    • bytearray(b'abcdef')[2] 返回該字節對應的數,in類型


  • .append(int)尾部追加一個元素

  • .insert(index,int)在指定索引位置插入元素

  • .extend(iterable_of_ints) 講一個可迭代的整數集合追加到當前bytearray

  • .pop(index = -1)從指定索引上移除元素,默認從尾部移除

  • .remove(value)找到第一個value移除,找不到拋value error

注意: 上述方法若需要使用int類型,值在[0,255]

  • .clear() 清空bytearray

  • .reverse()翻轉bytearray ,就地修改

int 和 bytes 之間轉換

  • int.from_bytes(bytes,byteorder)

    • 將以個字節數組表示成整數

  • int.to_bytes(length, byteorder)

    • byteorder 指字節序(大端big)

    • 將一個整數表達成一個指定長度的字節數組

i = int.form_bytes(b.'abc', 'big')
print( i , hex()) # 6382179  0x616263
printn(i.to_bytes(3 , 'big')) # b'abc'


所有數據在內存中全部都是2進制的形式,人要理解一個內存中的數據必須先要指定它的類型,否則這個數據是沒有意義的

一個字節 = 8位

一個字節0~255

兩個字節0~65535

0~255

0~127


大小端的意思是在內存中數據是如何存放的 (大小端代表著高低字節)例如:如果給兩個字節ab 是a放高地址呢還是b放高地址呢

低字節放在高地址上,大端模式big

低字節放在小地址上,小端模式little

高低字節的排放順序~~~

網絡上采用大端模式

windows內部采用小端模式

mac用大端模式



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

垫江县| 宜城市| 长丰县| 那曲县| 视频| 雅安市| 会宁县| 金秀| 内乡县| 宝应县| 伽师县| 抚州市| SHOW| 霍邱县| 河西区| 清丰县| 山丹县| 育儿| 黄浦区| 陆河县| 石渠县| 鄂托克旗| 石城县| 萍乡市| 溧水县| 昌平区| 河间市| 德州市| 北票市| 南投市| 天祝| 石家庄市| 哈尔滨市| 英超| 上林县| 同江市| 彰化市| 公安县| 林西县| 老河口市| 屏东县|