кодесурса
«Python

Python Bytes, Bytearray

script1adsense2code
script1adsense3code

Bytes, Bytearray

Python поддерживает ряд типов для хранения последовательностей. Существует шесть типов последовательностей: строки, байтовые последовательности (байтовые объекты), байтовые массивы (байтовые объекты), списки, кортежи и объекты диапазона.

Строки содержат символы Unicode. Их литералы пишутся в одинарных или двойных кавычках: «python», «data». Байты и объекты bytearray содержат одиночные байты - первый является неизменным, а последний - изменяемой последовательностью. Байтовые объекты могут быть построены конструктором bytes () и из литералов; используйте префикс ab с обычным строковым синтаксисом: b'python '. Чтобы создать байтовые массивы, используйте функцию bytearray ().

содержание

Байты литералы

 bytesliteral :: = bytesprefix (shortbytes | longbytes)
bytesprefix :: = "b" | "Б" | "бр" | "Br" | "бр" | "BR"
shortbytes :: = "'" shortbytesitem * "'" | "" шортбайтсайт * ""
longbytes :: = "'' '" longbytesitem * "' ''" | '"" "' longbytesitem * '" ""'
shortbytesitem :: = shortbyteschar | bytesescapeseq
longbytesitem :: = longbyteschar | bytesescapeseq
shortbyteschar :: = <любой ASCII-символ, кроме "/", новой строки или кавычки>
longbyteschar :: = <любой ASCII-символ, кроме "/">
bytesescapeseq :: = "/" <любой символ ASCII>

функции bytes () и bytearray ()

Функция bytes ():

Вернуть новый объект «байты», который представляет собой неизменную последовательность маленьких целых чисел в диапазоне 0 <= x <256, печатать как символы ASCII при отображении. bytes - это неизменяемая версия bytearray - она имеет те же методы, не требующие изменения, и одинаковое поведение индексации и среза.

Синтаксис:

 байты ([источник [, кодировка [, ошибки]]]) 

Функция bytearray () :

Вернуть новый массив байтов. Тип bytearray - это изменяемая последовательность целых чисел в диапазоне 0 <= x <256. Он имеет большинство обычных методов изменяемых последовательностей, описанных в Mutable Sequence Types, а также большинство методов, которые имеет тип bytes, см. Байты и Методы массива байтов.

Синтаксис:

 bytearray ([источник [, кодировка [, ошибки]]]) 

Необязательный параметр source можно использовать для инициализации массива несколькими различными способами:

  • Если это строка, вы также должны указать параметры кодирования (и, возможно, ошибки); Затем bytearray () преобразует строку в байты с помощью str.encode ().
  • Если это целое число, массив будет иметь такой размер и будет инициализирован нулевыми байтами.
  • Если это объект, соответствующий интерфейсу буфера, для инициализации массива байтов будет использоваться доступный только для чтения буфер объекта.
  • Если он итеративный, он должен быть итерируемым из целых чисел в диапазоне 0 <= x <256, которые используются в качестве начального содержимого массива.

Без аргумента создается массив размером 0.

Создать байтовый объект в Python

Пример-1:

Код:

>>> x = b"Bytes objects are immutable sequences of single bytes"
>>> print(x)
b'Bytes objects are immutable sequences of single bytes'
>>>

Пример-2:

Код:

#triple single or double quotes allows multiple lines
x = b'''Python Tutorial,
Javascript Tutorial,
MySQL Tutorial'''
print(x)

Выход:

 b'Python Tutorial, / nJavascript Tutorial, / nMySQL Tutorial '

Пример-3:

Код:

#created from a iterable of ints, string, bytes or buffer objects.
x = bytes('Python, bytes', 'utf8')
print(x)

Выход:

 b'Python, байты '

Конвертировать байты в строку

Пример-1:

Код:

#create a bytes object
x = b'El ni\xc3\xb1o come camar\xc3\xb3n'
print(x)

Выход:

 b'El ni / xc3 / xb1o come camar / xc3 / xb3n ' 

Пример-2:

Код:

# create a string using the decode() method of bytes. 
#This method takes an encoding argument, such as UTF-8, and optionally an errors argument.
x = b'El ni\xc3\xb1o come camar\xc3\xb3n'
s = x.decode()
print(type(s))
print(s)

Выход:


Эль-Ниньо-Камарон

Пример-3:

Код:

#create a bytes object encoded using 'cp855'
x = b'\xd8\xe1\xb7\xeb\xa8\xe5 \xd2\xb7\xe1'
print(x)
#return a string using decode 'cp855'
y = x.decode('cp855')
print(y)

Выход:

 b '/ xd8 / xe1 / xb7 / xeb / xa8 / xe5 / xd2 / xb7 / xe1'
привет мир

Преобразовать шестнадцатеричную строку в байты

Пример-1:

Код:

#create a string with hexadecimal data
x ='45678c6c56f205876f72c64'
print(x)

Выход:

 45678c6c56f205876f72c64

Пример-2:

Код:

#this class method returns a bytes object, decoding the given string object.
#the string must contain two hexadecimal digits per byte.
x ='45678c6c56f205876f72c64'
y = bytes.fromhex(x)

Выход:

 б»./ xf0 / XF1 / xf2'

Числовой код, представляющий символ байтового объекта в Python

Пример-1:

Код:

#return an integer representing the Unicode code point of that character.
x = ord(b'm')
print(x)

Выход:

 109

Пример-2:

Код:

#create a bytes object
y = b'Python bytes'
#generates a list of codes from the characters of bytes
z = list(y)
print(z)

Выход:

 [80, 121, 116, 104, 111, 110, 32, 98, 121, 116, 101, 115]

Определите символы таблицы сопоставления для использования с байтовым объектом в Python

Пример-1:

Код:

#create a str
x = b'Python mapping table characters'
print(x)

Выход:

 Символы таблицы сопоставления Python 

Пример-2:

Код:

b_table = bytes.maketrans(b'abcdef', b'uvwxyz')
print(type(b_table))
print(b_table)

Выход:

 <класс 'байтов'> 
б '/ x00 / x01 / x02 / x03 / x04 / x05 / x06 / X07 / X08 / т / п / x0b / x0c / г / x0e / X0F / x10 / x11 / x12 / x13 / x14 / x15 / х16 / x17 / x18 / x19 / x1a / x1b / x1c / x1d / x1e / x1f! "# $%
& / '() * +, -. / 0123456789:; <=> [электронная почта защищена] [//] ^ _ `uvwxyzghijklmnopqrstuvwxyz {|} ~ / x7f / x80 / x81 / x82 / x83 / x84 / x85 / x86 / x87 / x88 / x89 / X8A / x8b / x8c / x8d / x8e / x8f / х
90 / x91 / x92 / x93 / x94 / x95 / x96 / x97 / x98 / x99 / X9a / X9b / x9c / x9d / x9e / x9f / xa0 / xa1 / ха2 / XA3 / xa4 / xa5 / xa6 / xa7 / xa8 / xA9 / Хаа / Xab / XAC / XAD / XAE / XAF / XB0 / XB1 /
XB2 / xb3 / XB4 / XB5 / XB6 / xb7 / XB8 / xb9 / Xba / Xbb / XBC / XBD / XBE / XBF / xc0 / xc1 / xc2 / xc3 / XC4 / xc5 / XC6 / xc7 / xc8 / xc9 / XCA / XCB / XCC / XCD / xce / XCF / xd0 / xd1 / XD2 / XD3
/ Xd4 / xd5 / xd6 / xd7 / xd8 / xd9 / XDA / XDB / XDc / XDD / XDE / XDF / xe0 / xe1 / XE2 / XE3 / xe4 / xe5 / XE6 / xe7 / X Е8 / xE9 / хеа / xeb / XEC / неподвижная / Xee / XeF / xf0 / XF1 / xf2 / xf3 / XF4 / XF
5 / XF6 / xf7 / XF8 / xf9 / XFA / XFB / хк / XFD / XFE / XFF»

Пример-3:

Код:

b_table = bytes.maketrans(b'abcdef', b'uvwxyz')
str ='Write a Python function to find a distinct pair of numbers whose product is odd from a sequence of integer values.'
b_new = str.translate(b_table)
print(b_new)

Выход:

 Writy u Python zunwtion zinx u xistinwt puir oz numvyrs, чей проксимити - это oxx zrom u syquynwy oz intygyr vuluys.

Конвертировать байты в шестнадцатеричный в Python

>>> import binascii
>>> binascii.hexlify("Python".encode("utf8"))
b'507974686f6e'
>>> binascii.unhexlify(_).decode("utf8")
'Python'
>>> 

Как получить символ из числового кода в байтовых объектах в Python

>>> #this method return a single character based on the integer value.
>>> x = chr(60)
>>> print(x)
<
>>> x = chr(50)
>>> print(x)
2
>>> #create a list with integers in the range 0 through 255
>>> y = [70, 111, 106, 94, 101, 100, 22, 95, 105, 22, 91, 87, 125, 135]
>>> print(y)
[70, 111, 106, 94, 101, 100, 22, 95, 105, 22, 91, 87, 125, 135]
>>> #create a bytes object from a list of integers in the range 0 through 255.
>>> z = bytes(y)
>>> print(z)
b'Foj^ed\x16_i\x16[W}\x87'
>>> 

Определить длину объекта байтов в Python

>>> #create a string
>>> x ="Python, Bytes"
>>> print(x)
Python, Bytes
>>> #know the length of the string using the len() function
>>> print(len(x))
13
>>> #create a bytes object
>>> y = bytes(x, "utf8")
>>> print(y)
b'Python, Bytes'
>>> #know the length of the bytes object using the len() function
>>> print(len(y))
13
>>> 

Используйте операторы + и * с байтовыми объектами в Python


>>> #create a bytes object
>>> x = b"byte 213"
>>> print(x)
b'byte 213'
>>> #The * operator allow repeat the characters of a bytes object
>>> print(x * 5)
b'byte 213byte 213byte 213byte 213byte 213'
>>> #create two bytes objects.
>>> x1 = bytes([70, 111, 106, 94, 101, 100, 22, 95, 105, 22, 91, 87, 125, 135])
>>> x2 = b"Python"
>>> #The + operator allow create a new bytes object joining two or more bytes.
>>> x = x1 + x2
>>> print(x)
b'Foj^ed\x16_i\x16[W}\x87Python'
>>> #create a bytes object combining operators
>>> x = b"Python" + b"Bytes" * 3 + b"$"
>>> print(x)
b'PythonBytesBytesBytes$'
>>> 

Как получить байт из объекта байтов в Python?

>>> y = [80, 121, 116, 104, 111, 110, 32, 105, 115, 32, 101, 97, 115, 121]
>>> print(y)
[80, 121, 116, 104, 111, 110, 32, 105, 115, 32, 101, 97, 115, 121]
>>> #create a bytes object
>>> x1 = bytes([70, 111, 106, 94, 101, 100, 22, 95, 105, 22, 91, 87, 125, 135])
>>> print(x1)
b'Foj^ed\x16_i\x16[W}\x87'
>>> #is similar to the handling of lists, the index is defined in brackets
>>> x = y[3]
>>> print(x)
104
>>> print(chr(x))
h
>>> #can also use negative indices to get a byte from bytes object
>>> x = [-8]
>>> print(x)
[-8]
>>> x = y[-8]
>>> print(x)
110
>>> print(chr(x))
n
>>> 

Создайте объект bytearray в Python

>>> #create a bytearray from a bytes object
>>> x = bytearray(b"Python Bytes")
>>> print(x)
bytearray(b'Python Bytes')
>>> #create a bytearray from a string defining the standard of coding
>>> x = bytearray("Python Bytes", "utf8")
>>> print(x)
bytearray(b'Python Bytes')
>>> #create a bytearray from a list of integers in the range 0 through 255
>>> x = bytearray([94, 91, 101, 125, 111, 35, 120, 101, 115, 101, 200])
>>> print(x)
bytearray(b'^[e}o#xese\xc8')
>>> 

Разница между байтами и объектом bytearray в Python

>>> #bytearray objects are a mutable counterpart to bytes objects
>>> x = bytearray("Python bytearray", "utf8")
>>> print(x)
bytearray(b'Python bytearray')
>>> #can remove items from the bytes
>>> del x[11:15]
>>> print(x)
bytearray(b'Python bytey')
>>> #can add items from the bytes
>>> x[11:15] = b" object"
>>> print(x)
bytearray(b'Python byte object')
>>> #can use the methods of mutable type iterable objects as the lists
>>> x.append(45)
>>> print(x)
bytearray(b'Python byte object-')
>>> 

Преобразовать байты в байтовый массив

>>> #create a bytes object from a list of integers in the range 0 through 255
>>> x = bytes([105, 100, 107, 112, 132, 118, 107, 112, 200])
>>> print(x)
b'idkp\x84vkp\xc8'
>>> #generates a new array of bytes from a bytes object
>>> x1 = bytearray(x)
>>> print(x1)
bytearray(b'idkp\x84vkp\xc8')
>>> 

Кусочек байтового объекта в Python

>>> #create a bytes object
>>> x = b"Python slice"
>>> print(x)
b'Python slice'
>>> #b[start:stop] the start index is inclusive and the end index is exclusive.
>>> x1 = x[2:6]
>>> print(x1)
b'thon'
>>> #if the start index isn't defined, is starts from the beginning
>>> x1 = x[-5:]
>>> print(x1)
b'slice'
>>> #if the end index isn't defined, it goes until the end
>>> x1 = x[:4]
>>> print(x1)
b'Pyth'
>>> #if neither is defined, returns the full bytes object
>>> x1 = x[:]
>>> print(x1)
b'Python slice'
>>> 

Разница между байтами и строковым объектом

>>> # bytes objects are immutable sequences of integers, each value in the sequence
>>> # string objects are immutable sequences of unicode characters.
>>> x ="Python String"
>>> y = b"Python String"
>>> print(x)
Python String
>>> print(y)
b'Python String'
>>> # Found in unicode representation of characters but not in ascii
>>> x ="Python"
>>> y = bytes("Python", "utf8")
>>> print(x)
Python
>>> print(y)
b'Python'
>>>

Предыдущая: Python break, продолжить
Далее: Python String

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code