Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
💫Какая профессия из арт-мира подходит именно вам? #question
Подготовили для вас мини-тест на ключевые направления арт-рынка. Вдруг вы откроете себя?
В каждом вопросе выберите один вариант ответа. В конце подсчитайте, каких букв у вас больше всего — по преобладающей букве и определится ваша профессия.
Если вы хотите по-настоящему понять, как вам развиваться в сфере искусства, после теста почитайте о нашем интенсиве о построении карьеры в арт-мире.
Когда: со 2 по 5 декабря, с 19:00 до 21:30
Где: онлайн
Стоимость: 7.000 рублей
Переходите в чат-бот, узнавайте подробности и приобретайте доступ 🤍
ART FLASH
#Question
Как не ошибиться с выбором размера на сайте?
Помимо обмеров изделий в карточке товара, есть раздел «Узнай свой размер», в котором вы всегда можете посмотреть среднестатистические размеры, чтобы вам было легче ориентироваться.
Если у вас остаются сомнения по размеру изделия, например, с оверсайз моделями — вы всегда можете обратиться в наш чат поддержки на сайте или задать ваш вопрос по размеру в нашем telegram-боте @Inspireshopru_bot🤍
Модераторы всегда готовы помочь вам с выбором изделий✨
Гендер и пол: в чём разница?
Ты же биологически женщина мужчина!
— так начинается большинство споров о транслюдях.
Не всегда эта фраза — признак агрессии. Часто за ней стоит путаница между полом и гендером.
В чём же разница? Давайте разберёмся.
🧬 Что такое пол?
Пол — это биологические характеристики тела.
К ним относятся:
⚪️ хромосомы
⚪️гормоны
⚪️анатомия (в том числе половые органы и вторичные половые признаки)
Обычно при рождении пол определяют по внешним признакам и фиксируют в документах.
⚫️Важно:
не все тела строго делятся на «мужские» и «женские» — существуют интерсекс-вариации.
📌 На практике:
пол — это про тело, а не про то, кем человек является.
🧠 Что такое гендер?
Гендер — это идентичность человека: то, как он воспринимает себя и своё место в гендерной системе:
⚪️женская
⚪️мужская
⚪️вне бинарных рамок
Гендер — это не жёсткая система «или-или», а спектр.
⚫️Важно разделять:
⚪️гендерную идентичность — внутреннее понимание себя
⚪️гендерную экспрессию — то, как человек выражает себя: внешность, стиль, поведение
Идентичность и экспрессия не всегда совпадают.
📌 Например:
человек может быть женщиной, но не соответствовать ожиданиям «женственности» во внешности или поведении — и это нормально.
⚡️ Где возникает разрыв?
У многих людей пол и гендер совпадают, и тогда вопросов не возникает.
Но у транслюдей — нет.
📌 Например:
человек может быть женщиной, даже если при рождении ему был приписан мужской пол.
Это может сопровождаться гендерной дисфорией — дискомфортом из-за несоответствия тела и гендера.
Транспереход — это способ снизить этот дискомфорт и жить комфортнее.
🤩 Коротко:
📤Пол — это тело
📤Гендер — это идентичность
📤Они могут совпадать, а могут нет
И это нормально.
➤ Что дальше
В следующих постах разберём:
⚪️что такое гендерная дисфория
⚪️какие бывают этапы перехода
⚪️с чего начать
🤍🤍🤍🤍🤍🤍🤍
Сохраните, чтобы не путаться в базовых терминах.
Можно отправить этот пост тем, кто не понимает разницу между полом и гендером.
Больше разборов — по хэштегу
#Question@ElephanQ
#question
Dans un magasin de vêtements (в магазине одежды)
⁃ Madame, vous désirez? (Мадам, что вы хотите?)
⁃ Je peux vous renseigner? (Я могу вам помочь?)
⁃ Je peux vous proposer ce modéle. (Я могу предложить вам эту модель.)
⁃ Est-ce que vous avez d’autres modèles? (У вас есть другие модели?)
⁃ Je prends cette robe. (Я беру=покупаю это платье.)
⁃ Je vais réfléchir. (Я подумаю.)
#question
Voudriez-vous... ?
Voudriez-vous encore un peu de thé? - Хотите ещё чаю?
Voudriez-vous prendre une tasse de café? - Хотите чашку кофе?
Non, merci. - Нет, спасибо.
Merci, avec plaisir. - Спасибо, с удовольствием.
#Question Is 6.5 IELTS score B2 or C1?
The score 6.5 is borderline B2/C1
On paper, 6.5 equates to B2, but that's not to say candidates with this score can't showcase any C1 level features. More than this, I believe it varies on a case-by-case basis: someone may have ended up with 6.5 because of their testing incompetence or due to tough luck, while this may be the case for others thanks to their poor command of English.
In any case, I genuinely think that your IELTS score is not a spot-on reflection of your actual level of English.
@ieltsulugbeks
#Question How many correct answers do I need to score 8.5 on IELTS Listening?
Between 36 and 38
Most sources claim that in order to score 8.5 on IELTS Listening, you need to have at least 37 correct answers. But this is only partially true. Sometimes, even with 36 correct answers, you can end up with 8.5 on Reading and Listening — it's all about the difficulty of the test. If you happen to answer questions that the examiners marked as 'extremely' difficult, then the chances are you will get more points for that answer. This doesn't necessarily mean you will score 8.5 with the raw score of 36 for every test.
Other possible scenarios:
Listening Band 7.0 = raw score 29
Listening Band 8.0 = raw score 33
💯@ieltsulugbeks