Рубрики
Без рубрики

Python Присоединяйтесь к списку байтов (и что такое байт Python В любом случае?)

https://youtu.be/ub6n-ixoapg При преподавании студентов Finxter Python я часто шокировал, как даже кодеры промежуточных уровней не понимают очень основные основы информатики. В CS нет ничего не так, как фундаментальный, как простой, простой байт. (Вы знаете, что последовательность 0s и 1s называется битами). Это руководство направлено на то, чтобы уточнить некоторые заблуждения и вопросы … Python Присоединяйтесь к списку байтов (и что такое байт Python В любом случае?) Подробнее “

Автор оригинала: Chris.

При обучении Finxter Python студенты Я часто шокировал, как даже кодеры промежуточных уровней не понимают очень основные основы Информатика . В CS нет ничего не так, как фундаментальный, как простой, простой байт. (Вы знаете, что последовательность 0s и 1s называется биты ).

Это руководство направлено на то, чтобы уточнить некоторые заблуждения и вопросы относительно Байты в Python – Термин, который имеет совершенно другое значение для Байты в целом Отказ В частности, вы узнаете определение объекта байта и как правильно присоединиться к последовательности байтов. Вот краткий ответ:

Байт Python – это последовательность байтов. Вы создаете объект байта, используя обозначения B '...' похож на строковую запись «...» . Чтобы присоединиться к списку байтов, позвоните в Byte.join (список) метод. Если вы попытаетесь присоединиться к списку байтов на строка Разделитель, Питон бросит Типеррор Так что убедитесь, что назовите его на байтовый объект B '' .join (...) а не « .join (...) Отказ

Перед тем, как вы погрузитесь во все это в пошаговой манере, давайте немного сыграем с помощью интерактивной кодовой оболочки, чтобы открыть разрыв знаний:

Упражнение : Что произойдет, если вы присоединитесь к списку байтов на строке разделителя? Попробуйте в раковине!

Какой байт в Python в любом случае?

Вы думаете, вы знаете, что такое байт, верно? Это последовательность 8 битов.

Ну, это то, что байт за пределами мира Python. В Python это не вся история.

Python поставляется со встроенным байтовым типом данных. Согласно Официальная документация Байтовый объект – это « неизменяемая последовательность байтов ». Если вы говорите о байте снаружи Python, вы имеете в виду 8 бит. Если вы говорите о байте внутри Python, вы имеете в виду последовательность одного или нескольких байтов.

Давайте удержим это на минутку и посмотрите, как вы создаете простой байтовый объект:

>>> a = b'X'
>>> a
b'X'
>>> type(a)

Вы создаете объект байта точно так же, как вы создаете строку в Python, используя один, двойной или тройной цитаты вокруг текста, который должен быть закодирован в «последовательности байтов». В этом случае последовательность байтов состоит только из байтов, необходимых для кодирования одного символа 'X' Отказ ASCII код характера 'X' 88 или в двоичном формате 0b1011000 Отказ Вы можете видеть, что вам нужен только один байт, чтобы кодировать символ.

Но вы также можете создать более сложные объекты «Python Byte», которые состоят из более «реальных байтов»? Что вы можете:

>>> a = b'hello'
>>> a
b'hello'
>>> type(a)

Опять же, вы создаете объект байта для «Привет» Отказ Вы не можете кодировать всю строку «Привет» в восьми битах), поэтому объект Python Byte А Сейчас состоит из «последовательности байтов».

Вынос : A (Python) Байт – последовательность байтов, и вы можете использовать его так же, как вы используете строки, используя синтаксис B '...' вместо «...» . Как строковые объекты, байты неизменяются – поэтому вы не можете изменять их после создания.

Объединенные байтовые струны в Python

Вы можете ConcateNate два байтовых объекта х и y В Python с помощью (перегруженной) добавить операцию X + Y. :

>>> x = b'hello '
>>> y = b'world!'
>>> x + y
b'hello world!'

Это работает для Python 2 и Python 3, и он, вероятно, также будет работать в Python 4! (Почему? Потому что семантика __add__ Операция не изменится, просто устанавливая новый язык программирования или изменение старого.)

Как присоединиться к списку байтов?

Байты Python похожи, чем строки Python (по крайней мере для вас, человек, который использовал структуру данных байтов в своей программе).

Итак, присоединение к списку байтов похож на Присоединение к списку строк : Используйте метод соединения! Объект байта поставляется с методом Byte.join (потенциал) что объединяет все байтовые объекты в считать .

Имейте в виду, что объект байта представляет собой последовательность байтов само по себе (а не последовательность битов, как вы, возможно, ожидали). И да, я повторю это, пока не придерживается.

Синтаксис : Byte.join (потенциал)

считать Коллекция объектов байтов.

Примеры : Давайте посмотрим кучу примеров на том, как вы можете присоединиться к Коллекция байтов объектов!

lst = [b'Python', b'is', b'beautiful']

# Example 1
print(b' '.join(lst))
b'Python is beautiful'

# Example 2
print(b'-'.join(lst))
b'Python-is-beautiful'

# Example 3
print(b'\n'.join(lst))
b'Python\nis\nbeautiful'

Вы получаете точку: вы называете Присоединяйтесь () Способ на байтовом объекте и пройти с помощью объектов байтов, которые должны быть объединены. Обратите внимание, как все вовлеченные типы данных являются объектами байтов!

Как исправить «TypeError: Sequence Attack 0: Ожидаемый экземпляр SEL, BYTES найдено»?

Распространенная ошибка многих кодеров Python – это позвонить неправильно Присоединяйтесь () Способ! Скажем, у вас есть присоединение к байтам. Если вы позвоните String.join (…) Метод вместо Byte.join (...) Метод, Python бросит Типеррор Со следующим сообщением об ошибке:

lst = [b'Python', b'is', b'beautiful']
print(' '.join(lst))
# TypeError: sequence item 0: expected str instance, bytes found

Сообщение об ошибке не говорит вам, как исправить эту проблему. Причина в том, что вы называете Присоединяйтесь () Метод на строковом объекте. И строка Присоединяйтесь () Метод ожидает, что вы передаете графические объекты String. Но вы проходите итерателю байтовных объектов!

Чтобы исправить это, просто позвоните присоединиться(...) Метод на байтовом объекте B '' .join (...) вместо « .join (...) Отказ

lst = [b'Python', b'is', b'beautiful']
print(b' '.join(lst))
b'Python is beautiful'

Таким образом, вы можете легко объединить несколько объектов байтов, используя Byte.join () метод.

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/python-join-list-of-bytes/”