1. 程式人生 > >Python中的bytearray()和bytes()函式

Python中的bytearray()和bytes()函式

Python中的bytearray()和bytes()函式

概述

bytearray() 函式返回新位元組陣列,數組裡的元素可變,且每個元素的值在0至255之間。bytes()函式是Python 3中增加的內建函式,語法、引數與bytearray() 一樣,只是返回的新位元組陣列不可變。它是 bytearray() 的不可變版本。

語法

class bytearray([source[, encoding[, errors]]])
class bytes([source[, encoding[, errors]]])

引數

  • 如果 source 為整數,則返回一個長度為 source 的初始化陣列;
  • 如果 source 為字串,則按照指定的 encoding 將字串轉換為位元組序列;
  • 如果 source 為可迭代型別,則元素必須為[0 ,255] 中的整數;
  • 如果 source 為與 buffer 介面一致的物件,則此物件也可以被用於初始化 bytearray;
  • 如果沒有輸入任何引數,預設就是初始化陣列為0個元素。

示例

>>> bytearray()
bytearray(b'')
>>> bytearray(1)
bytearray(b'\x00')
>>> bytearray('test','utf-8')
bytearray(b'test')
>>> a=bytearray('hello','ascii')
>>> a
bytearray(b'hello')
>>> type(a)
<class 'bytearray'>
>>> a=bytes('hello','ascii')
>>> a
b'hello'
>>> type(a)
<class 'bytes'>
>>> bytearray([1,2,3,4])
bytearray(b'\x01\x02\x03\x04')
>>> bytearray([1,256,300,400])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: byte must be in range(0, 256)