TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в 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

Hashtags

Резултати

Пронајдени 2 слични објави

Пребарај: #nem

当前筛选 #nem清除筛选
GitHub Trends

@githubtrending · Post #15003 · 28.07.2025 г., 12:30

#java#nem#nem_blockchain You can quickly build and run a NEM node using the NIS (NEM Infrastructure Server) project, which includes all necessary parts like core, deploy, peer, and nis modules. To build it, you need Java 11 or higher and Apache Maven. After building and testing, configure your node by placing property files in a folder named "staging" and start the node with a Java command allocating at least 6GB RAM. You can also set up a testnet node by creating a specific config file. This setup helps you run and manage a secure NEM blockchain node efficiently, supporting blockchain validation and network participation. Detailed docs and community support are available for help. https://github.com/NemProject/nem

Mirracoin Новости

@MirraChannel · Post #174 · 17.07.2024 г., 12:34

#блокчейн#ProofOfImportance#Blockchain#Crypto#Web3#PoI#база Что такое Proof of Importance (PoI) и как он работает? Интересуетесь криптовалютами и блокчейн-технологиями? Тогда вам 🤨 обязательно нужно узнать о Proof of Importance (PoI) — инновационном механизме консенсуса, который предлагает уникальные преимущества! 🔥Proof of Importance (анг. - доказательство важности) — это алгоритм консенсуса, впервые представленный платформой #NEM (New Economy Movement). Он оценивает "важность" каждого участника сети, чтобы определить, кто будет создавать следующий блок. В отличие от Proof of Work (PoW) и Proof of Stake (PoS), PoI учитывает не только количество монет на счету, но и активность пользователя в сети. ⚙️Особенности PoI: • Активность в сети: PoI поощряет активное участие в транзакциях, а не просто накопление монет. • Доверие и стабильность: Активные пользователи получают больший вес, что стимулирует участие и укрепляет сеть. • Справедливость: PoI снижает вероятность централизации, так как учитывается вклад каждого участника, а не только крупные счета. 📌 Для понимания работы консенсуса приведем простой пример. Представьте, что Алиса и Боб — участники сети. У Алисы на счету 1000 монет, но она не участвует в транзакциях, в то время как у Боба 500 монет, но он активно совершает транзакции. PoI считает Боба более важным 😎, так как он вносит больший вклад в жизнедеятельность сети. Благодаря этому, Боб имеет больше шансов создать новый блок 💡. ❗️Поддержите пост лайками 👍, если узнали что-то новое! @MirraChannel😎