Шаг 49.
Основы языка Python.
Строки и двоичные данные. Тип данных bytearray

    На этом шаге мы рассмотрим назначение и методы, используемые для работы с этим типом данных.

    Тип данных bytearray является разновидностью типа bytes и поддерживает те же самые методы и операции. В отличие от типа bytes, тип bytearray допускает возможность непосредственного изменения объекта и содержит дополнительные методы, позволяющие выполнять эти изменения.

    Создать объект типа bytearray можно следующими способами:

    Тип bytearray относится к изменяемым типам. Поэтому можно не только получить значение по индексу, но и изменить его (что не свойственно строкам):

>>> b = bytearray("Python", "ascii")
>>> b[0]           # Можем получить значение
80
>>> b[0] = b"J"[0] # Можем изменить значение
>>> b
bytearray(b'Jython')

    При изменении значения важно помнить, что присваиваемое значение должно быть целым числом в диапазоне от 0 до 255. Чтобы получить число в предыдущем примере, мы создали объект типа bytes, а затем присвоили значение, расположенное по индексу 0 (b[0] = b"J"[0]). Можно, конечно, сразу указать код символа, но ведь держать все коды символов в памяти свойственно компьютеру, а не человеку.

    Дяя изменения объекта можно также использовать следующие методы:

    Преобразовать объект типа bytearray в строку позволяет метод decode(). Метод имеет следующий формат:

  decode([encoding="utf-8"][, errors="strict"])

    Параметр encoding задает кодировку символов (по умолчанию UTF-8) в объекте bytearray, а параметр errors - способ обработки ошибок при преобразовании. В параметре errors можно указать значения "strict" (значение по умолчанию), "replace" или "ignore". Пример преобразования:

>>> b = bytearray("строка", "cp1251")
>>> b.decode(encoding="cp1251"), b.decode("cp1251")
('строка', 'строка')

    Для преобразования можно также воспользоваться функцией str():

>>> b = bytearray("строка", "cp1251")
>>> str(b, "cp1251")
'строка'

    На следующем шаге мы рассмотрим преобразование объекта в последовательность байтов.




Предыдущий шаг Содержание Следующий шаг