Можно ли в 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
🎮 Tetris cumple 40 años: curiosidades y legado del videojuego soviético que conquistó el mundo
En un día cualquiera de 1985, en pleno corazón de Moscú, un joven ingeniero soviético llamado Alexéi Pázhitnov encendía su Elektronika 60, una computadora sin gráficos ni sonido, para dar vida a una idea que cambiaría la historia del entretenimiento digital: Tetris. Lo que comenzó como un experimento matemático en la Academia de Ciencias de la URSS se convirtió en uno de los videojuegos más populares y versionados de todos los tiempos.
Inspirado por el juego de mesa Pentominó, Pázhitnov simplificó las piezas a figuras de cuatro bloques —los famosos tetrominós— y bautizó su creación como “Tetris”, combinando la palabra griega “tetra” (cuatro) y su deporte favorito, el tenis. La primera versión del juego, programada en modo texto, utilizaba corchetes para representar las piezas. A pesar de su rudimentaria apariencia, el juego era adictivo: los jugadores debían encajar las piezas que caían para formar líneas horizontales sin huecos. Al completar una línea, esta desaparecía, dejando espacio para seguir jugando.
La fiebre por Tetris comenzó en el Centro de Computación Dorodnitsyn, donde los colegas de Pázhitnov no podían dejar de jugar. En 1985, se creó la primera versión en color, y el juego empezó a circular por toda la URSS en disquetes, sin que nadie pensara en derechos de autor. En ese entonces, el software no se consideraba propiedad intelectual, y mucho menos una fuente de ingresos personales.
Pero el juego cruzó fronteras. En 1986, el empresario húngaro Robert Stein descubrió Tetris y, sin tener los derechos, lo vendió a compañías como Mirrorsoft en Reino Unido y Spectrum HoloByte en EE.UU. El éxito fue inmediato, pero también ilegal. El gobierno soviético, a través de la agencia Elorg, intervino para reclamar la propiedad del juego.
El punto de inflexión llegó en 1989, cuando Nintendo incluyó Tetris como juego estrella en el lanzamiento de su consola portátil Game Boy. La decisión fue un golpe maestro: millones de unidades se vendieron, y Tetris se convirtió en un fenómeno cultural. Su diseño simple, accesible y desafiante lo hizo universal. Desde entonces, ha sido adaptado a más de 65 plataformas, incluyendo consolas, PC, móviles y navegadores.
Durante años, Pázhitnov no recibió ni un rublo por su creación. Como empleado del Estado soviético, los derechos pertenecían al gobierno. No fue hasta 1996, ya viviendo en EE.UU., que recuperó los derechos y fundó The Tetris Company junto a Henk Rogers, el empresario que ayudó a llevar el juego a Japón y a Nintendo.
Hoy, Tetris no solo es un juego: es un símbolo de la cultura pop, un objeto de estudio en psicología y neurociencia, y una herramienta educativa. Se han vendido más de 500 millones de copias en todo el mundo, y su música —la famosa “Korobeiniki”— es reconocida por generaciones
#Tetris#HistoriaRusa#VideojuegosRetro#CulturaSoviética#GameBoy
Apóyanos pulsando👉'BOOST'👈
🖥https://vamosarusia.com
💬@vamosarusia
🎮 Tetris: la historia del juego soviético que conquistó al mundo
Alekséi Pázhitnov, es el genio detrás de uno de los juegos más emblemáticos de la historia, el Tetris. Este pasatiempo, que ha generado ingresos de más de 20.000 millones de dólares, es un testimonio de la creatividad de un ingeniero de software soviético.
La historia de Tetris comenzó en 1984, en el Centro de Computación de la Academia de Ciencias de la URSS en Moscú. Alekséi, que entonces trabajaba como investigador, creó Tetris como un simple experimento de programación inspirado en un rompecabezas llamado pentominós. El objetivo era organizar bloques de diferentes formas y tamaños que caían desde la parte superior de la pantalla, formando líneas completas que luego desaparecían.
Pázhitnov no anticipó el enorme éxito que Tetris tendría. Rápidamente se extendió por toda la Unión Soviética y, gracias a una serie de acuerdos de licenciamiento, llegó a Europa y América del Norte. El juego se convirtió en el primer software de entretenimiento exportado desde la URSS a los Estados Unidos.
El lanzamiento coincidió con un período de importantes cambios en el país. En medio de la Perestroika y la Glasnost, políticas de reforma introducidas por Mijaíl Gorbachov, la URSS comenzó a abrirse a Occidente, permitiendo un flujo más libre de ideas y productos. Rápidamente el juego se convirtió en un símbolo de esta nueva apertura y del potencial de la colaboración internacional en el ámbito tecnológico.
Hoy en día, Tetris sigue siendo uno de los juegos más populares y reconocibles del mundo. Ha sido adaptado para innumerables plataformas, desde consolas de videojuegos hasta teléfonos móviles, y sigue atrapando a jugadores de todas las edades.
Datos curiosos
🎮 La música es igual de famosa que el juego en sí. La melodía más conocida es 'Korobeiniki', una canción folclórica rusa del siglo XIX que se convirtió en el tema principal.
🎮 Tiene varios récords mundiales, incluyendo el juego de mayor duración y la mayor cantidad de líneas completadas. Los campeonatos de Tetris aún se llevan a cabo y atraen a jugadores de todo el mundo.
🎮 En 1993, se convirtió en el primer videojuego en ser jugado en el espacio. El cosmonauta ruso Aleksandr A. Serebrov llevó una versión de Tetris en su Game Boy durante la misión Soyuz TM-17 a la estación espacial Mir.
¿Qué te parece el Tetris?, ¿juegas habitualmente?
#AlekséiPázhitnov#Tetris#HistoriaDeLosVideojuegos#GenioSoviético#CulturaPopular
¡Comparte nuestro contenido!❤️
🖥https://vamosarusia.com
💬@vamosarusia
Мы в пятёрке! Скадовские киберспортсмены достойно представили область на зональном этапе🎮🚀
14 февраля команда ГБОУ ХО «Скадовская школа №1» приняла участие в зональном этапе ЮФО «Всероссийской интеллектуально-киберспортивной школьной лиги». Ребята соревновались в трёх дисциплинах и показали высокий уровень подготовки.
🏆 Личные результаты:
🥇 Дмитрий Дудко — 1 место в «Мире танков» (105 очков в копилку команды).
♟ Валерия Галкина — 4 место в электронных шахматах, уступив в матче за бронзу спортсмену из Краснодарского края (25 очков).
🎮 София Алещенко — четвертьфинал в Tetris, уступила сопернику из Астраханской области (15 очков).
Общий зачёт: команда набрала 165 очков и заняла 5 место из 9 команд, оставив позади несколько регионов. Уступили только сильнейшим — это достойный результат для первого выхода на такой уровень.
Благодарим за подготовку и волю к победе:
— директора школы Евгению Михайловну Хлусову,
— тренера-преподавателя ХСШ №5 Евгения Петровича Фесенко.
Участие стало возможным благодаря поддержке Министерства спорта ХО, Министерства образования и науки ХО и Федерации компьютерного спорта России.
Гордимся нашими ребятами! Впереди новые турниры и новые победы. 🚀
#КиберспортХО#Скадовск#ВсероссийскаяЛига#ШкольныйКиберспорт#МирТанков#Tetris#Шахматы#МинспортХО#ФКС#ХерсонскаяОбласть