Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pythonworldru.pdf
Скачиваний:
249
Добавлен:
11.03.2016
Размер:
709.75 Кб
Скачать

Глава 20

Байты (bytes и bytearray)

Байтовые строки в Python - что это такое и с чем это едят? Байтовые строки очень похожи на обычные строки, но с некоторыми отличиями. Попробуем выяснить, с какими.

Что такое байты? Байт - минимальная единица хранения и обработки цифровой информации. Последовательность байт представляет собой какую-либо информацию (текст, картинку, мелодию...).

Создаём байтовую строку:

>>>b'bytes' b'bytes'

>>>'Байты'.encode('utf-8') b'\xd0\x91\xd0\xb0\xd0\xb9\xd1\x82\xd1\x8b'

>>>bytes('bytes', encoding = 'utf-8') b'bytes'

>>>bytes([50, 100, 76, 72, 41])

b'2dLH)'

Если первые три способа нам уже известны (тут, тут и тут), то последний нужно пояснить. Функция bytes принимает список чисел от 0 до 255, и возвращает байты, получающиеся применением функции chr.

>>>chr(50)

'2'

>>>chr(100)

'd'

>>>chr(76)

'L'

Что делать с байтами? Хотя байтовые строки поддерживают практически все строковые методы, с ними мало что нужно делать. Обычно их надо записать в файл / прочесть из файла и преобразовать во что-либо другое (конечно, если очень хочется, то можно и распечатать). Для преобразования в строку используется метод decode:

>>> b'\xd0\x91\xd0\xb0\xd0\xb9\xd1\x82\xd1\x8b'.decode('utf-8') 'Байты'

62

Самоучитель Python, Выпуск 0.2

20.1 Bytearray

Bytearray в python - массив байт. От типа bytes отличается только тем, что является изменяемым. Про него, в общем-то, больше рассказать нечего.

>>>b = bytearray(b'hello world!')

>>>b

bytearray(b'hello world!')

>>>b[0]

104

>>>b[0] = b'h'

Traceback (most recent call last): File "", line 1, in

b[0] = b'h'

TypeError: an integer is required

>>>b[0] = 105

>>>b

bytearray(b'iello world!')

>>>for i in range(len(b)):

... b[i] += i

...

>>>b bytearray(b'ifnos%}vzun,')

20.1. Bytearray

63

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]